Ver Mensaje Individual
  #4  
Antiguo 14-09-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Reputación: 20
weke Va por buen camino
Buenas!
En una aplicación necesitaba arrancar una serie de servicios antes de ejecutarla y matarlos al finalizarla.
Buscando en el foro encontre este código que pongo a continuación:
Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
// el nombre que se le pasa a la función es el nombre del ejecutable que 
// se quiere matar
  matar_proceso('events.exe');
end;
 
function TForm1.matar_proceso(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;
De esta manera hice una aplicación con 2 botones, uno para arrancar los procesos y otro para matarlos. Muy sencillita.
Espero que con esto puedas hacer lo que buscas.

Saludos!!
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita