Ver Mensaje Individual
  #2  
Antiguo 12-11-2004
Er_Manué Er_Manué is offline
Miembro
 
Registrado: may 2003
Posts: 74
Reputación: 21
Er_Manué Va por buen camino
Truco 267 de Trucomania, antes, debes de incluir la libreria TLHelp32

Código:
procedure TForm1.Button1Click(Sender: TObject);
 
  function IsRunnig (FicheroExe:string):boolean;
 
    function SacaExe(MangoW:HWND):string;
    {Obtiene el EXE de una tarea}
    {get EXE of a task}
    var 
      Datos    :TProcessEntry32;
      hID    :DWord;
      Snap    : Integer;
    begin 
      GetWindowThreadProcessId(MangoW,@hID);
      Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
      try
        Datos.dwSize:=SizeOf(Datos);
        if(Process32First(Snap,Datos))then
        begin 
          repeat 
            if Datos.th32ProcessID=hID then 
            begin 
              Result:=StrPas(Datos.szExeFile);
              Break;
            end; 
          until not(Process32Next(Snap,Datos));
        end; 
      finally
        Windows.CloseHandle(Snap);
      end; 
    end; 
 
 
   function ObtieneVentanas(Mango: HWND;
            ACerrar: Pointer): Boolean; stdcall;
   begin 
     Result := True;
     {Mango es el handle de la tarea encontrada}
     {Si es el .EXE buscado, lo cierra}
     if SacaExe(Mango)=UpperCase( String(ACerrar^) )then
     begin 
       String(Acerrar^):='Encontrado';
     end; 
   end; 
 
 
  begin 
    EnumWindows( @ObtieneVentanas, Integer(@FicheroExe) );
    Result:=(FicheroExe='Encontrado');
  end; 
 
begin 
 if IsRunnig('C:\WINDOWS\NOTEPAD.EXE')
   then ShowMessage ('Ejecutandose/Running')
   else ShowMessage ('No Ejecutandose/Do not running');
end;
salu2
Responder Con Cita