Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Detectar ejecución. (https://www.clubdelphi.com/foros/showthread.php?t=28559)

piccolo2101 23-12-2005 09:39:09

Detectar ejecución.
 
Hola,

Estoy creando un update para una aplicación que estoy desarrollando para que las empresas que lo usan puedan actualizar la versión de forma automática desde internet. Lo que me interesa en este momento es saber si la aplicación está en ejecución y en ese caso cerrarla para iniciar la descarga del nuevo fichero y sustituirlo por el antiguopara volverlo a arrancar. El update es una parte externa de la aplicación, es decir, no es una opción del programa sino un ejecutable en sí.


Un saludo y gracias.

epuigdef 23-12-2005 10:48:00

Tengo este código que de hecho lo que hace es matar un proceso por su nombre; Puedes cambiar el terminateProcess por lo que te interese en tu caso.


Edu

Código Delphi [-]
 
procedure MatarProceso(FileName:String);
   var
       ContinueLoop:BOOL;
       FSnapshotHandle:THandle;
       FProcessEntry32:TProcessEntry32;
   const
       PROCESS_TERMINATE=$0001;
   begin
       FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
       FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
       ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
       while integer(ContinueLoop)<>0 do
       begin
           if FProcessEntry32.szExeFile=FileName then
             TerminateProcess( OpenProcess(PROCESS_TERMINATE,BOOL(0),
                               FProcessEntry32.th32ProcessID),0);
             ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
       end;
       CloseHandle(FSnapshotHandle);
   end;


La franja horaria es GMT +2. Ahora son las 21:44:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi