Mit Hilfe dieser Function ist es möglich alle laufenden Prozesse aufzulisten. In diesem Beispiel werden alle Prozesse nach dem Schema '
Handle:Fenstertitel' in einer Listbox aufgelistet:
Delphi-Quellcode:
function EnumWinProc(Wnd: hWnd): Boolean; StdCall;
var
WinCaption : Pchar;
WinHandle : string;
begin
GetMem(WinCaption, 255);
try
GetWindowText(Wnd, WinCaption, 255);
Result := True;
if (Trim(WinCaption) <> '') then
begin
WinHandle := IntToHex(Wnd, 6);
Form1.ListBox1.Items.add(WinHandle + ' : ' + WinCaption);
end;
finally
FreeMem(WinCaption, 255);
end;
end;
Die Funktion kann so aufgerufen werden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWinProc, Application.Handle);
end;
falls du lieber die Exenamen angezeigt haben möchstest kannst du es besser so machen...
Delphi-Quellcode:
procedure FillAppList(Applist: Tstrings);
var Snap:THandle;
ProcessE:TProcessEntry32;
begin
Applist.Clear;
Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
ProcessE.dwSize:=SizeOf(ProcessE);
if Process32First(Snap,ProcessE) then
begin
Applist.Add(string(ProcessE.szExeFile));
while Process32Next(Snap,ProcessE) do
Applist.Add(string(ProcessE.szExeFile));
end
else ShowMessage('Fehler!');
CloseHandle(Snap);
end;
Aufrufen kann man die Prozedur dann so:
FillAppList(ListBox1.items);
------
Quelle : EDH