Ver Mensaje Individual
  #3  
Antiguo 13-07-2010
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Reputación: 15
bosster_018 Va por buen camino
Esto lo tengo hace tiempo

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 
  // Abre y lee la lista de procesos en éste momento 
  Abrir_Procesos := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
  Leer_Procesos.dwSize := SizeOf(Leer_Procesos); 
 
  // Acceder al primer proceso 
  Seguir_Leyendo := Process32First(Abrir_Procesos, Leer_Procesos); 
 
  // Condicion para recorer los procesos activos hasta que sea igual a 0 
    while (Integer(Seguir_Leyendo) <> 0) do 
    begin 
      // Añadirlo a la lista 
      preguntar:= ExtractFileName(Leer_Procesos.szExeFile); 
      // Empezar a leer los procesos 
      Seguir_Leyendo := Process32Next(Abrir_Procesos, Leer_Procesos); 
      // Preguntar si encontró el proceso 
        if Preguntar = Edit1.Text then 
        begin 
          ShowMessage('Encontrado'); 
          // igualamos a 0 para que deje de buscar 
          integer(Seguir_Leyendo):= 0; 
        end 
        else 
        begin 
          //ya no hay procesos que leer (0) y no se encontró el proceso buscado 
          if (integer(Seguir_Leyendo) = 0) and (Preguntar <> Edit1.Text) then 
            ShowMessage('No encontrado'); 
        end; 
    end; 
  // cerrar la lectura de procesos 
  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'); 
          // igualamos a 0 para que deje de buscar 
          integer(Seguir_Leyendo):= 0; 
        end 
        else 
        begin 
          //ya no hay procesos que leer (0) y no se encontró el proceso  buscado 
          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!
Responder Con Cita