Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozessliste unter WIN95 (https://www.delphipraxis.net/57528-prozessliste-unter-win95.html)

HPW 22. Nov 2005 19:29


Prozessliste unter WIN95
 
Ich versuche eine Prozessliste auszulesen (für NT4 nutze ich eine andere Routine)
Nun bekomme ich hiermit unter XP 1-4 stellige korrekte ProzessID's.
Unter WIN95 sind diese jedoch ca. 8 stellig (Sitze gerade nicht mehr vor dem WIN95).
Is dies unter WIN95 korrekt?

Delphi-Quellcode:
          TempList := TStringList.Create;
          aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
          aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
          bContinue := Process32First(aSnapshotHandle, aProcessEntry32);
          while Integer(bContinue) <> 0 do
          begin
            TempList.Add(ExtractFileName(aProcessEntry32.szExeFile)+'|'+IntToStr(aProcessEntry32.th32ProcessID));
            bContinue := Process32Next(aSnapshotHandle, aProcessEntry32);
          end;
          TempList.Sort;
          ....
//        Benutzung der Liste
          ....
          CloseHandle(aSnapshotHandle);
          TempList.Free;

NicoDE 23. Nov 2005 08:29

Re: Prozessliste unter WIN95
 
Zitat:

Zitat von HPW
Unter WIN95 sind diese jedoch ca. 8 stellig (Sitze gerade nicht mehr vor dem WIN95).
Is dies unter WIN95 korrekt?

Ja, das ist richtig (es handelt sich unter Win9x um verschlüsselte Pointer).

ps: die Anzeige erfolgt unter Win9x üblicherweise mit IntToHex(Id, 8) und unter WinNT mit IntToStr(Id).
pps: vergiß bitte nicht die Fehlerbehandlung: der Snapshot könnte fehlschlagen (INVALID_HANDLE_VALUE) oder die Funktion könnte nicht vorhanden sein (0) - try-finally könnte auch nicht schaden...

HPW 23. Nov 2005 18:21

Re: Prozessliste unter WIN95
 
Nico,

Danke für den Tip und die zusätzlichen Hinweise.
Hat mich auf die richtige Spur zurück gebracht.

PS: Bei Googlen mit 'aProcessEntry32 IntToHex' bekomme ich auch viele Beispiele mit IntToHex(Id, 4)

;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz