共用方式為


GetProcessHandleFromHwnd 函式

從視窗控制碼擷取進程控制碼。

語法

HANDLE WINAPI GetProcessHandleFromHwnd(
  _In_ HWND hwnd
);

參數

hwnd [in]

類型: HWND

視窗控制代碼 (Window Handle)。

傳回值

類型: HANDLE

如果成功,會傳回擁有視窗之進程的控制碼。

如果未成功,則傳回 Null

備註

在舊版作業系統中,進程可能會開啟另一個進程 (來存取其記憶體,例如使用 OpenProcess) 。 如果呼叫端具有適當的許可權,則此函式會成功;通常呼叫端和目標進程必須是相同的使用者。

不過,在 Windows Vista 上, OpenProcess 會在呼叫端具有 UIAccess 且目標進程提升的情況下失敗。 在此情況下,目標進程的擁有者位於 Administrators 群組中,但呼叫進程是以受限制的權杖執行,因此沒有此群組的成員資格,而且拒絕存取提升許可權的進程。 不過,如果呼叫端具有 UIAccess,他們可以使用視窗勾點將程式碼插入目標進程,並從目標進程內將控制碼傳回給呼叫端。

GetProcessHandleFromHwnd 是一種便利函式,會使用這項技術來取得擁有指定 HWND 之進程的控制碼。 請注意,只有在呼叫端和目標進程以相同使用者身分執行的情況下,它才會成功。 傳回的控制碼具有下列許可權:PROCESS_DUP_HANDLE |PROCESS_VM_OPERATION |PROCESS_VM_READ |PROCESS_VM_WRITE |同步。 如果需要其他許可權,您可能需要明確地實作勾點技術,而不是使用此函式。

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限桌面應用程式]
DLL
Oleacc.dll