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)

继续

IDIGNORE (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
目标平台 Windows
标头 wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll

另请参阅

MessageBox