Ver Mensaje Individual
  #2  
Antiguo 03-02-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.108
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez "matar el proceso" de la aplicación, pero, ten en cuenta que matar un proceso implica que la aplicación en cuestión no se cerrará en condiciones, es decir, "no se enterará" de que ha sido "asesinada", si no me equivoco...

Código Delphi [-]
uses
  TlHelp32;

function MatarProcesos(nombre: string): boolean;
var
  moduleEntry: TModuleEntry32;
  processEntry: TProcessEntry32;
  hSnapshot, hProcess: cardinal;
begin
  result := false;
  moduleEntry.dwSize := SizeOf(TModuleEntry32);
  processEntry.dwSize := SizeOf(TProcessEntry32);
  hSnapshot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
  if Process32First(hSnapshot,processEntry) then
  begin
    repeat
      if (lstrcmpi(PChar(nombre),@processEntry.szExeFile) = 0) then
      begin
        hProcess := OpenProcess(PROCESS_TERMINATE,
                     false,processEntry.th32ProcessID);
        result := TerminateProcess(hProcess,0);
        CloseHandle(hProcess);
      end;
    until not Process32Next(hSnapshot,processEntry);
  end;
  CloseHandle(hSnapshot);
end;

Y ten en cuenta además que lo anterior mataría todos los procesos con el mismo nombre, es decir, que si algún ejecutable se llama como el de la aplicación que quieres "matar", también este será "asesinado" sin piedad. En definitiva, que no sé si te servirá de algo o qué.
Responder Con Cita