OpenDesktopA 函数 (winuser.h)

打开指定的桌面对象。

语法

HDESK OpenDesktopA(
  [in] LPCSTR      lpszDesktop,
  [in] DWORD       dwFlags,
  [in] BOOL        fInherit,
  [in] ACCESS_MASK dwDesiredAccess
);

参数

[in] lpszDesktop

要打开的桌面的名称。 桌面名称不区分大小写。

此桌面必须属于当前窗口工作站。

[in] dwFlags

此参数可以为零或以下值。

价值 意义
DF_ALLOWOTHERACCOUNTHOOK
0x0001
允许在桌面上的其他帐户中运行的进程在此进程中设置挂钩。

[in] fInherit

如果此值 TRUE,则由此进程创建的进程将继承句柄。 否则,进程不会继承此句柄。

[in] dwDesiredAccess

对桌面的访问权限。 有关访问权限列表,请参阅 桌面安全和访问权限

返回值

如果函数成功,则返回值是打开的桌面的句柄。 使用完句柄后,调用 CloseDesktop 函数将其关闭。

如果函数失败,则返回值 NULL。 若要获取扩展的错误信息,请调用 GetLastError

言论

调用进程必须具有关联的窗口工作站,由系统在进程创建时分配,或由 SetProcessWindowStation 函数设置。

如果 dwDesiredAccess 参数指定 READ_CONTROLWRITE_DACWRITE_OWNER 标准访问权限,则还必须请求 DESKTOP_READOBJECTSDESKTOP_WRITEOBJECTS 访问权限。

注意

winuser.h 标头将 OpenDesktop 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-windowstation-ansi-l1-1-1(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

CloseDesktop

CreateDesktop

桌面

OpenInputDesktop

SetProcessWindowStation

SetThreadDesktop

SwitchDesktop

窗口工作站和桌面函数