Esto lo encontré hace tiempo en el ClubDelphi, donde se mostraba la forma de saber si algún proceso se está ejecutando.
Cita:
Primero agrega un edit y luego un boton.
En el botón escribes esto:
|
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
Abrir_Procesos : Integer;
Leer_Procesos : TProcessEntry32;
Seguir_Leyendo: BOOL;
Preguntar : string;
begin
Abrir_Procesos := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Leer_Procesos.dwSize := SizeOf(Leer_Procesos);
Seguir_Leyendo := Process32First(Abrir_Procesos, Leer_Procesos);
while (Integer(Seguir_Leyendo) <> 0) do
begin
preguntar:= ExtractFileName(Leer_Procesos.szExeFile);
Seguir_Leyendo := Process32Next(Abrir_Procesos, Leer_Procesos);
if Preguntar = Edit1.Text then
begin
ShowMessage('Encontrado');
integer(Seguir_Leyendo):= 0;
end
else
begin
if (integer(Seguir_Leyendo) = 0) and (Preguntar <> Edit1.Text) then
ShowMessage('No encontrado');
end;
end;
CloseHandle(Abrir_Procesos);
end;
Donde dice "Edit1.text" puedes cambiarle por el nombre del proceso que quieres saber si se ejecuta en ese momento, por ejemplo "notepad.exe" o cambiar la condición para saber si se está ejecutando uno u otro proceso: en este caso el notepad o el M$ Word
Código Delphi
[-]if Preguntar = 'notepad.exe' or Preguntar = 'winword.exe' then
begin
ShowMessage('Encontrado');
integer(Seguir_Leyendo):= 0;
end
else
begin
if (integer(Seguir_Leyendo) = 0) and (Preguntar <> Edit1.Text) then
ShowMessage('No encontrado');
end;
Y así sucesivamente...
Y si quieres que sea automatizado... Puedes poner el código en un Timer
Saludos!