WTSSendMessageA 函数 (wtsapi32.h)

在指定的远程桌面服务会话的客户端桌面上显示消息框。

语法

BOOL WTSSendMessageA(
  [in]  HANDLE hServer,
  [in]  DWORD  SessionId,
  [in]  LPSTR  pTitle,
  [in]  DWORD  TitleLength,
  [in]  LPSTR  pMessage,
  [in]  DWORD  MessageLength,
  [in]  DWORD  Style,
  [in]  DWORD  Timeout,
  [out] DWORD  *pResponse,
  [in]  BOOL   bWait
);

参数

[in] hServer

RD 会话主机服务器的句柄。 指定由 WTSOpenServer 函数打开的句柄,或指定 WTS_CURRENT_SERVER_HANDLE 来指示运行应用程序的 RD 会话主机服务器。

[in] SessionId

远程桌面服务会话标识符。 若要指示当前会话,请指定 WTS_CURRENT_SESSION。 可以使用 WTSEnumerateSessions 函数检索指定 RD 会话主机服务器上所有会话的标识符。

若要向其他用户的会话发送消息,需要具有“消息”权限。 有关详细信息,请参阅 远程桌面服务
权限
。 若要修改会话的权限,请使用远程桌面服务配置管理工具。

[in] pTitle

指向消息框标题栏的以 null 结尾的字符串的指针。

[in] TitleLength

标题栏字符串的长度(以字节为单位)。

[in] pMessage

指向包含要显示的消息的以 null 结尾的字符串的指针。

[in] MessageLength

消息字符串的长度(以字节为单位)。

[in] Style

消息框的内容和行为。 此值通常 MB_OK。 有关值的完整列表,请参阅 MessageBox 函数的 uType 参数。

[in] Timeout

WTSSendMessage 函数等待用户的响应的时间(以秒为单位)。 如果用户未在超时间隔内做出响应,则 pResponse 参数返回 IDTIMEOUT。 如果 Timeout 参数为零,WTSSendMessage 无限期等待用户响应。

[out] pResponse

指向接收用户响应的变量的指针,可以是以下值之一。

IDABORT (3)

中止

IDCANCEL (2)

取消

IDCONTINUE (11)

继续

伊迪尼奥尔 (5)

忽略

IDNO (7)

IDOK (1)

正常

IDRETRY (4)

重试

IDTRYAGAIN (10)

重试

IDYES (6)

IDASYNC (32001 (0x7D01)

bWait 参数 FALSE,因此函数返回时无需等待响应。

IDTIMEOUT (32000 (0x7D00)

bWait 参数 TRUE 和超时间隔已过。

[in] bWait

如果 TRUE,则在用户响应或超时间隔过后,WTSSendMessage 不会返回。 如果 Timeout 参数为零,则函数在用户响应之前不会返回。

如果 FALSE,函数将立即返回,pResponse 参数返回 IDASYNC。 将此方法用于不需要返回用户对调用程序的响应的简单信息消息(如打印作业通知消息)。

返回值

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

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

言论

注意

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

要求

要求 价值
最低支持的客户端 Windows Vista
支持的最低服务器 Windows Server 2008
目标平台 窗户
标头 wtsapi32.h
Wtsapi32.lib
DLL Wtsapi32.dll

另请参阅

MessageBox