OpenDesktop函数返回一个现有桌面的句柄。桌面是包含在窗口站对象内的安全对象。桌面具有逻辑显示面,并包含窗口,菜单和挂钩。
HDESK打开桌面(
LPTSTR 【lpszDesktop】, | //要打开的桌面的名称 |
DWORD 【dwFlags中】, | //标志来控制与其他应用程序的交互 |
BOOL 【Finherit】, | //指定返回的句柄是否可继承 |
DWORD 【dwDesiredAccess】 | //指定返回句柄的访问 |
); |
参数
【lpszDesktop】
指向以空字符结尾的字符串,指定要打开的桌面的名称。桌面名称不区分大小写。
【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功能设置。
也可以看看
CreateDesktop, SetProcessWindowStation, SetThreadDesktop, SwitchDesktop