Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Conocer lista de programas ejecutandose (https://www.clubdelphi.com/foros/showthread.php?t=54853)

cucuy 01-04-2008 18:15:56

Conocer lista de programas ejecutandose
 
Hola amigos del foro, quiero saber si alguien de ustedes sabe la forma de conocer la lista de programas que se estan ejecutando en windows, al estilo del administrador de tareas. Con el fin de identificar algunos programoas no deseados y poderlos cerrar.

Saludossssss

aeff 02-04-2008 06:53:57

saludos, mira, no se a que te refieres con "al estilo del administrador de tareas", pero puedes usar esto, mira, coloca un ListBox en tu form y un Button, en el evento onClick del Button coloca este código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  vPhotoMem: Cardinal;
  vPData: TProcessEntry32;
begin
  ListBox1.Clear;
  vPhotoMem := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  while Process32Next(vPhotoMem, vPData) do
    begin
      ListBox1.Items.Add(vPData.szExeFile)
    end;
end;

claro, que no se te olvide añadir la unit tlHelp32 en el uses.

saludos!
aeff!

aeff 02-04-2008 07:05:07

ñooooooo!! para serte mas claro, con lo anterior lo que haces es mostrar una lista de los procesos en ejecución, ahh!, te digo que los proceso que son del SYSTEMA no se pueden cerrar, como el Winlogon el LSASS etc..., pero si lo que quieres es cerrar el proceso que selecciones en el listbox entonces te doy una idea un poco rustica pero funciona,

mira, pon otro button con el cual pretenderas cerrar el proceso e implementa este codigo:

Código Delphi [-]
{añade en el uses a ShellApi}
uses ...,ShellApi;

{Implmentas esta funcioncita, para ya verás...}
function GetOnlyName(pFileName: string): string;
begin
  Result := Copy(ExtractFileName(pFileName), 1, Pos('.', ExtractFileName(pFileName)) -1);
end;

{y en el Evento onclick del button que va a cerrar el proceso seleccionado}
procedure TForm1.Button2Click(Sender: TObject);
begin
  ShellExecute(Handle, nil, 'Tskill.exe', pChar(GetOnlyName(ListBox1.Items.Strings[ListBox1.ItemIndex])),
               nil, SW_HIDE);

end;

bueno, es un invento, lo que hacemos es mandar a cerrar el proceso con un programa del propio Windows llamdo Tskill.exe

espero que te sirva este metodo rustico

saludos!
aeff!


La franja horaria es GMT +2. Ahora son las 10:07:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi