Lenguaje de programación Borland Delphi
Este truco obtiene una lista de los programas en ejecución (sólo el nombre del ejecutable). Para ello, añadiremos un formulario con el nombre "formMenuPrincipal, un botón y un TMemo con el nombre "mProgramasEjecucion". En el USES del formulario pondremos: TLHelp32. En el evento click del botón pondremos el siguiente código:
procedure TformMenuPrincipal.Button1Click(Sender: TObject);
function SacaExe(MangoW:HWND):string;
{Obtiene el EXE de una tarea}
var
Datos :TProcessEntry32;
hID : DWord;
Snap : Integer;
begin
GetWindowThreadProcessId(MangoW,@hID);
Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
try
Datos.dwSize:=SizeOf(Datos);
if(Process32First(Snap,Datos))then
begin
repeat
if Datos.th32ProcessID=hID then
begin
Result:=StrPas(Datos.szExeFile);
Break;
end;
until not(Process32Next(Snap,Datos));
end;
finally
Windows.CloseHandle(Snap);
end;
end;
function ObtieneVentanas(Mango: HWND; Nada: Pointer): Boolean; stdcall;
var
sTemp : string;
begin
Result := True;
{Mango es el handle de la tarea encontrada}
sTemp:=SacaExe(Mango);
//if IndexOf(sTemp) = - 1 then
formMenuPrincipal.mProgramasEjecucion.Lines.Add(sTemp);
end;
begin
EnumWindows (@ObtieneVentanas, 0);
end;
Truco obtenido de Trucomanía por Radikal
Publicado el: 2003-10-14