setThreadDesktop 函数 (winuser.h)

将指定的桌面分配给调用线程。 桌面上的所有后续操作都使用授予桌面的访问权限。

语法

BOOL SetThreadDesktop(
  [in] HDESK hDesktop
);

参数

[in] hDesktop

要分配给调用线程的桌面的句柄。 此句柄由 CreateDesktopGetThreadDesktopOpenDesktopOpenInputDesktop 函数返回。

此桌面必须与进程的当前窗口工作站相关联。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

如果调用线程在其当前桌面 (上有任何窗口或挂钩, SetThreadDesktop 函数将失败,除非 hDesktop 参数是当前桌面) 的句柄。

警告 在交互式桌面上打开窗口的任何服务都存在重大的安全风险。 通过打开桌面窗口,服务会使其容易受到登录用户的攻击,其应用程序可能会向服务的桌面窗口发送恶意消息,并影响其运行能力。
 

要求

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

另请参阅

CreateDesktop

台式机

GetThreadDesktop

OpenDesktop

SetProcessWindowStation

窗口工作站和桌面函数