terça-feira, 29 de setembro de 2009

Pegar o nome dos arquivos que estão em execução

{É comum e até relativamente fácil encontrarmos rotinas para listar todas as janelas abertas. Mas muitas vezes não é apenas o caption das janelas que queremos listar e sim o nome do arquivo executável.

Veja então uma rotina que cria uma lista de strings com esses nomes:}

uses TLHelp32; // não esqueça de incluir esta unit
procedure ListProcess(List: TStrings);
var
ProcEntry: TProcessEntry32;
Hnd: THandle;
Fnd: Boolean;
begin
List.Clear;
Hnd := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if Hnd <> -1 then
begin
ProcEntry.dwSize := SizeOf(TProcessEntry32);
Fnd := Process32First(Hnd, ProcEntry);
while Fnd do
begin
List.Add(ProcEntry.szExeFile);
Fnd := Process32Next(Hnd, ProcEntry);
end;
CloseHandle(Hnd);
end;
end;

//E para utilizar esta rotina é muito simples, veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
ListProcess(ListBox1.Items);
end;

Nenhum comentário:

Postar um comentário