函数参考


_WinAPI_SendMessageTimeout

发送指定消息到其它窗口.

#Include <WinAPIEx.au3>
_WinAPI_SendMessageTimeout ( $hWnd, $iMessage [, $wParam [, $lParam [, $iTimeout [, $iFlags]]]] )

参数

$hWnd 接收消息的窗口句柄.
$iMessage 被发送的消息.
$wParam [可选参数] 消息的其它特定信息.
$lParam [可选参数] 消息的其它特定信息.
$iTimeout [可选参数] 持续超时时间的毫秒值. 如果该消息是通知消息,
每个窗口可以使用完整的超时时间.默认为 1000
$iFlags [可选参数] 指明如何发送邮消息.
参数可以是一或多个下列值:
 $SMTO_BLOCK --- 防止调用线程处理任何其他请求,直到函数返回.
 $SMTO_NORMAL --- 不阻止调用线程处理其它请求求,同时等待函数返回
 $SMTO_ABORTIFHUNG --- 如果接收线程没有回应或“挂起”,函数返回,不必等待超时时间
 $SMTO_NOTIMEOUTIFNOTHUNG --- 只要是接收线程处理消息,该函数不执行超时时间
 $SMTO_ERRORONEXIT --- 如果接收窗口被销毁或死亡,而信息正在处理中,函数应返回 0

返回值

成功: 返回取决于发送消息的处理结果.
失败: 返回 -1,设置 @error 标志为非 0 值.

注意/说明

如果使用 $HWND_BROADCAST, 此函数不提供个别窗口的超时信息.
 如果超时,函数将失败. 调用 _WinAPI_GetLastError() 获取更多的错误信息.
 如果 _WinAPI_GetLastError() 返回 ERROR_TIMEOUT, 则函数超时.
 若 5 秒内没有响应, 则函数认为是一个没有响应的线程.
 系统仅为系统消息编组, 范围为 0 到 (WM_USER-1).
 要发送其它消息( 即 >= WM_USER )到另一个进程,你必须自定义编组.

相关

详情参考

在MSDN中搜索