Ver Mensaje Individual
  #21  
Antiguo 09-03-2012
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Reputación: 21
Cabanyaler Va por buen camino
Ya lo tengo y ahora si que está todo completo.
Después de la instrucción de la función:
Código Delphi [-]
// Cerramos el monitor
      PdfCreator.cClose;
Se debe hacer la llamada a la función con esta sintaxis:
Código Delphi [-]
KillTask('PDFCreator.exe')

Y a continuación escribo la función:

Código Delphi [-]
uses
  Tlhelp32;

(...)

function KillTask(ExeFileName: string): Integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;

Esta función KillTask (me encanta el nombre ), sirve para la eliminación de cualquier proceso que se esté ejecutando en el sistema, si sabes que exe lo lanza.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita