PDA

Ver la Versión Completa : esta ejecutandose una aplicacion en NT?


jmbarrio
12-01-2005, 17:58:11
Hola a tod@s, estoy intentando hacer una aplicacion que este escaneando cada cierto tiempo si esta ejecutandose otra aplicacion distinta en mi PC, y en caso de que no lo este la llame.
He empleado el truco de detectar todas las aplicaciones que se estan ejecutando en windos pero en mi caso no me sirve ya que estoy empleando
windows NT y en este caso el truco no sirve.

Alguien podría echarme una mano, muchas gracias por las molestias.

Un saludo.

Coco
12-01-2005, 18:11:14
prueba con esto, yo lo utilice en NT, 2000, 9x sin problemas.

//Busco si hay una aplicacion
HandleApp := FindWindow('TForm1',nil);
//el nil es por el titulo de la ventana por si quieres
//identificar mas aun la aplicacion
Application.Initialize;
if (HandleApp=0)
then
//no hay una instancia ejecutando
else
//Esta ejecutandose una instancia


Saludos

jmbarrio
12-01-2005, 18:25:35
Yo quiero saber si se me esta ejecutando un programa llamado chat.exe

a que equivale el TForm1 en la solucion que me has dado?

Coco
12-01-2005, 18:43:43
perdon, entendi que querias saber si tu aplicacion estaba ejecutandose.:confused:

Aqui va otro ej, sacado de Trucomania, donde puedes saber si un exe esta ejecutandose pero necesitas saber el path donde se encuentra el mismo.

procedure TForm1.Button1Click(Sender: TObject);

function EstaEjecutandose (ExeFile:string): boolean;
var H:word;
begin
H:=CreateFile(PChar(ExeFile), GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
Result := (H >= 65535);
CloseHandle(H);
end;
begin
if EstaEjecutandose ('c:\windows\notepad.exe')
then Label1.Caption:='SI/YES'
else Label1.Caption:='NO';
end;

Espero que te sirva. Saludos

jmbarrio
13-01-2005, 10:25:52
Muchas gracias por las molestias , ahora voy a probar si me funciona.

Un saludo.

jmbarrio
13-01-2005, 10:49:04
Lo he probado y no me ha funcionado el valor que me devuelve H es el mismo
si tengo el .exe ejecutandose o no.

Un saludo.