OpenInputDesktop函数返回一个接收用户输入的桌面的句柄。输入桌面是与登录用户相关联的窗口台上的桌面。
HDESK OpenInputDesktop(
DWORD 【dwFlags中】, | //标志来控制与其他应用程序的交互 |
BOOL 【Finherit】, | //指定返回的句柄是否可继承 |
DWORD 【dwDesiredAccess】 | //指定返回句柄的访问 |
); |
参数
【dwFlags中】
一个位标志参数,用于控制呼叫应用程序将如何与桌面上的其他应用程序配合使用。此参数可以指定零或以下值:
值 | 描述 |
DF_ALLOWOTHERACCOUNTHOOK | 允许进程在桌面上的其他帐户中运行,以便在此过程中设置挂接。 |
Finherit
指定在创建新进程时是否继承返回的句柄。如果此值为TRUE,则新进程将继承该句柄。
【dwDesiredAccess】
指定对桌面的访问类型。此参数可以是以下值中的一个或多个:
值 | 描述 |
DESKTOP_CREATEMENU | 需要在桌面上创建一个菜单。 |
DESKTOP_CREATEWINDOW | 需要在桌面上创建一个窗口。 |
DESKTOP_ENUMERATE | 需要枚举的桌面。 |
DESKTOP_HOOKCONTROL | 需要建立任何窗口挂钩。 |
DESKTOP_JOURNALPLAYBACK | 需要在桌面上执行日志回放。 |
DESKTOP_JOURNALRECORD | 需要在桌面上执行日志记录。 |
DESKTOP_READOBJECTS | 需要在桌面上读取对象。 |
DESKTOP_SWITCHDESKTOP | 需要使用SwitchDesktop激活桌面。 |
DESKTOP_WRITEOBJECTS | 需要在桌面上写入对象。 |
返回值
如果函数成功,则返回值是接收用户输入的桌面的句柄。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
呼叫进程必须具有关联的窗口站,由系统在进程创建时分配或设置为SetProcessWindowStation与呼叫进程相关联的窗口站必须能够接收输入。
应用程序可以使用SwitchDesktop功能来更改输入桌面。
也可以看看