NeoXan - Mi 24.12.03 03:37
Titel: Process unter WinNT anzeigen funzt net
Moin,
also so
ungefähr hohle ich mir die laufenden Prozesse...
Delphi-Quelltext
1: 2: 3: 4: 5:
| aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); aProcessEntry32.dwSize := SizeOf(aProcessEntry32); NewItem.Caption := ExtractFileName(aProcessEntry32.szExeFile); NewItem.subItems.Add(IntToHex(aProcessEntry32.th32ProcessID, 4)); NewItem.subItems.Add(aProcessEntry32.szExeFile); |
dat klappt auch so weit so gut...jedenfalls mit XP...unter WinNT zeigt er nämlich gar nichts an?! Wie kann man sich die Prozesse anzeigen/beenden lassen unter NT bzw. 2000
mfg
NeoXan
Delete - Mi 24.12.03 09:43
Ich bin mir zu 99% sicher, dass sich in diesem Forum auch passender Code für das Auflisten von Prozessen befindet. Auf die Schnelle habe ich allerdings nur den
FAQ [
http://www.delphi-forum.de/viewtopic.php?t=13858]-Beitrag gefunden, in dem ich bei NT-Systemen einen speziellen Weg gehe, um den Dateinamen auszulesen:
| Zitat: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| if(wv.dwPlatformId = VER_PLATFORM_WIN32_NT) then begin hp := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false,pid);
if(hProcess <> INVALID_HANDLE_VALUE) then try ZeroMemory(@buf,sizeof(buf)); GetModuleFileNameEx(hp,0,buf,sizeof(buf)); finally CloseHandle(hp); end; end; | |
Allerdings hat der FAQ-Beitrag jetzt nichts mit dem Auflisten
aller Prozesse zu tun, er sucht anhand des Fensterhandles Pfad+Namen des Programms. Wie auch immer - ich habe auch bei Systemen wie NT und 2000 keine Probleme, den Dateinamen zu ermitteln.
Für dein Problem ist es IMHO hilfreich, die
Suchfunktion [
http://www.delphi-forum.de/search.php] mit Begriffen wie "Prozesse", "auflisten" usw. zu füttern und zusätzlich nach den Autoren Luckie und Motzi zu suchen. Das sollte dir einige Treffer bringen.