Ver Mensaje Individual
  #2  
Antiguo 31-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Algo que puedes hacer es agregar un tercer parámetro, de tipo Integer, a la función GetProcessID, para indicarle de cuál proceso quieres el ID, de entre todos los que llevan el mismo nombre de programa ejecuatable. Haciendo que su ciclo While se repita hasta coincidir, no sólo con el nombre de archivo ejecutable, sino también con el número de proceso dado.

De tal forma que TForm1.Button1Click quedaría más o menos así:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Obtenemos el ID del primer proceso
  if GetProcessID(ProgramName, PidId, 1) then
  begin
    PidHandle  :=  OpenProcess(PROCESS_ALL_ACCESS,False,PidId);
    poke1($401000, $90);
    closehandle(PidHandle);
  end;

  // Obtenemos el ID del segundo proceso
  if GetProcessID(ProgramName, PidId, 2) then
  begin
    PidHandle  :=  OpenProcess(PROCESS_ALL_ACCESS,False,PidId);
    poke1($401000, $90);
    closehandle(PidHandle);
  end;
end;

Espero te haya orientado satisfactoriamente.

Un abrazo en proceso.

Al González.
Responder Con Cita