Freigeben über


GetProcessHandleFromHwnd-Funktion

Ruft ein Prozesshandle aus einem Fensterhandle ab.

Syntax

HANDLE WINAPI GetProcessHandleFromHwnd(
  _In_ HWND hwnd
);

Parameter

hwnd [in]

Typ: HWND

Das Fensterhandle.

Rückgabewert

Typ: HANDLE

Bei erfolgreicher Ausführung wird das Handle des Prozesses zurückgegeben, der besitzer des Fensters ist.

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

Bemerkungen

In früheren Versionen des Betriebssystems konnte ein Prozess mithilfe von OpenProcess einen anderen Prozess (z. B. für den Zugriff auf den Arbeitsspeicher) öffnen. Diese Funktion ist erfolgreich, wenn der Aufrufer über die entsprechenden Berechtigungen verfügt. In der Regel müssen Aufrufer und 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 mit erhöhten Rechten versehen 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, sodass keine Mitgliedschaft in dieser Gruppe besteht und der Zugriff auf den Prozess mit erhöhten Rechten verweigert wird. Wenn der Aufrufer jedoch über UIAccess verfügt, kann er einen Windows-Hook verwenden, um Code in den Zielprozess einzufügen, und aus dem Zielprozess ein Handle zurück an den Aufrufer senden.

GetProcessHandleFromHwnd ist eine Komfortfunktion, die diese Technik verwendet, um das Handle des Prozesses abzurufen, der den angegebenen HWND besitzt. Beachten Sie, dass dies nur in Fällen erfolgreich ist, in denen der Aufrufer und der Zielprozess mit demselben 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 | SYNCHRONISIEREN. Wenn andere Berechtigungen erforderlich sind, kann es erforderlich sein, die Hookingtechnik explizit zu implementieren, anstatt diese Funktion zu verwenden.

Anforderungen

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