Genau, OpenProcess ist schon richtig, um das
Handle eines Prozesses anhand der PID zu ermitteln, allerdings scheinen deine Parameter fehlerhaft zu sein. Versuch mal:
hProcess := OpenProcess(PROCESS_ALL_ACCESS, false, PID);
Das
Handle sollte dann gültig sein, ist aber wie schon erwähnt bei jedem Aufruf verschieden.
Edit: Dass OpenProcess() unter Vista nicht mehr funktioniert stimmt auf keinen Fall
Währe ja schlimm ..
Edit: Okay es wird nicht funktionieren, wenn du mit einem restrikted Token Programm versuchst eine elevated Application zu öffnen, aber das ist auch nur ein Rechte Problem. Startest du bei aktivierter
UAC deine Anwendung als Administrator, kannst du selbstverständlich alle Programmhandles öffnen. Nur für SYSTEM Prozesse benötigst du weitere Debug Privilegien.