GetProcessHandleFromHwnd-Funktion

Ruft ein Prozesshand handle aus einem Fensterhand handle ab.

Syntax

HANDLE WINAPI GetProcessHandleFromHwnd(
  _In_ HWND hwnd
);

Parameter

hwnd [ In]

Typ: HWND

Das Fensterhandle.

Rückgabewert

Typ: HANDLE

Bei Erfolg wird das Handle des Prozesses zurückgegeben, der das Fenster besitzt.

Wenn dies nicht erfolgreich ist, wird NULL zurückgegeben.

Hinweise

In früheren Versionen des Betriebssystems konnte ein Prozess einen anderen Prozess (z. B. für den Zugriff auf den Arbeitsspeicher) mithilfe von OpenProcess öffnen. Diese Funktion ist erfolgreich, wenn der Aufrufer über entsprechende Berechtigungen verfügt. In der Regel müssen der Aufrufer und der Zielprozess derselbe Benutzer sein.

Unter Windows Vista schlägt OpenProcess jedoch in dem Szenario fehl, in dem der Aufrufer ÜBER UIAccess verfügt und der Zielprozess erhöht ist. In diesem Fall befindet sich der Besitzer des Zielprozesses in der Gruppe Administratoren, aber der aufrufende Prozess wird mit dem eingeschränkten Token ausgeführt, verfügt also nicht über eine Mitgliedschaft in dieser Gruppe und wird dem Zugriff auf den Prozess mit erhöhten Rechten verweigert. Wenn der Aufrufer jedoch über UIAccess verfügt, kann er einen Windows-Hook verwenden, um Code in den Zielprozess einzujizieren, und innerhalb des Zielprozesses ein Handle zurück an den Aufrufer senden.

GetProcessHandleFromHwnd ist eine Komfortfunktion, die diese Technik verwendet, um das Handle des Prozesses zu erhalten, der das angegebene HWND besitzt. Beachten Sie, dass dies nur in Fällen erfolgreich ist, in denen der Aufrufer und der Zielprozess als derselbe Benutzer ausgeführt werden. Das zurückgegebene Handle verfügt über die folgenden Berechtigungen: PROCESS _ DUP _ HANDLE PROCESS VM OPERATION PROCESS VM READ PROCESS VM | WRITE _ _ | _ _ | _ _ | SYNCHRONIZE. Wenn andere Berechtigungen erforderlich sind, kann es erforderlich sein, die Hookmethode explizit zu implementieren, anstatt diese Funktion zu verwenden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Nur [ XP-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2003-Desktop-Apps]
DLL
Oleacc.dll