sexta-feira, 29 de junho de 2012

Nomes dos arquivos que estão sendo executados:

É 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