PDA

Ver la Versión Completa : Buscar Aplicacion en Ejecucion y traerla al frente


Enan0
29-09-2012, 13:52:25
Hola Amigos.

Les comento mi problema.

desde mi aplicacion (al hacer Click en un boton que deberia ejecutar una aplicacion cualquier, podria ser el notepad). primero Busco si esta se esta ejecutando. (obtengo el process ID etc.). hasta este punto todos in problemas.

AQUI EL PROBLEMA

Estoy necesitando que si la misma se encuentra en ejecucion, sea traida al frente,. .

alguien sabria como hacer este ultimo punto?

dejo el codigo para buscar el proceso en ejecucion




// S= Nombre del proceso a buscar
Function FindProcess(s:String):integeR;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
ModuleEntry: TagModuleEntry32;
Old_ID:integer;
foto:cardinal;
begin
Result:=-1;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
old_ID:=-1;
while (Integer(ContinueLoop) <> 0) and (Result=-1) and (old_id<>FProcessEntry32.th32ProcessID) do
begin
Old_ID:=FProcessEntry32.th32ProcessID;
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(s)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(s))) then begin
ModuleEntry.dwSize := SizeOf(TModuleEntry32);
foto := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, old_ID);
module32first(foto,ModuleEntry);
Result:=FProcessEntry32.th32ProcessID;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;