OpenInputDesktop,是獲得當前用戶桌面句柄的函式。
輸入桌面,語法,參數,返回值,說明,要求,參閱,
輸入桌面
註:每個桌面(desktop)都為一個對象,所謂輸入桌面(input Desktop),典型例子就是即當前用戶的桌面。
語法
HDESK WINAPI OpenInputDesktop( _In_DWORD dwFlags, _In_BOOL fInherit, _In_ACCESS_MASK dwDesiredAccess);
參數
- dwFlags[輸入]
- 此參數可為0或者以下參數。
Value | Meaning |
---|---|
DF_ALLOWOTHERACCOUNTHOOK | 允許其他賬戶上運行在當前桌面的進程可以HOOK當前進程。 (Allows processes running in other accounts on the desktop to set hooks in this process.) |
- fInherit[in]
如果這個值為TRUE,當前進程創建的子進程將會繼承此句柄。否則子進程不會繼承此句柄。 - dwDesiredAccess[in]
對桌面的訪問許可權。對於訪問許可權的具體列表,請訪問MSDNDesktop Security and Access Rights.
返回值
如果函式成功執行,返回值為當前桌面句柄。當你不需要使用這個句柄,調用CloseDesktop函式關閉這個桌面句柄。
如果函式執行失敗,返回值為NULL。想獲得具體錯誤信息,調用GetLastError。
說明
調用進程必須已有一個與之對應的窗體站(window station),或者當進程創建是被分配了一個,或者通過SetProcessWindowStation函式設定好。另外,此視窗站必須能夠接收輸入。
如果調用進程運行在一個未連線的會話中,此返回函式桌面句柄、只有當用戶重新連線會話後才會激活的。
程式可以調用SwitchDesktop函式去修改輸入桌面。
如果指定dwDesiredAccess參數的許可權為READ_CONTROL,WRITE_DAC, 或者WRITE_OWNER,你必須還得添加DESKTOP_READOBJECTS和DESKTOP_WRITEOBJECTS許可權。
要求
Minimum supported client | Windows2000 Professional [desktop apps only] |
---|---|
Minimum supported server | Windows2000 Server [desktop apps only] |
頭檔案 | Winuser.h (include Windows.h) |
庫檔案 | User32.lib |
DLL | User32.dll |
參閱
- Desktops
- SetProcessWindowStation
- SwitchDesktop
- Window Station and Desktop Functions