找回密码
 加入
搜索
查看: 3593|回复: 1

[系统综合] API SendMessageTimeout 的应用

[复制链接]
发表于 2011-2-23 00:04:49 | 显示全部楼层 |阅读模式
看到某神在帖子中说
SendMessageTimeout 这个可以向窗口发送消息,并设置指定超时时间,你可以用这个来发送广播消息,或者枚举窗口一个个发送,来判断是否超时,超时就未响应。


通过上面来判断应用程序是否为无响应状态。
API函数说明
SendMessageTimeout

VB声明
Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
说明
向窗口发送一条消息。如窗口位于不同的线程中,则利用这个函数可以指定一个超时值,以便在另一个进程挂起的时候防止调用进程也永远挂起
返回值
Long,成功时返回TRUE,失败时返回FALSE。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,要接收消息的一个窗口的句柄
msg Long,消息的标识符
wParam Long,由消息决定
lParam Long,由消息决定
fuFlags Long,下述常数的一个或多个
SMTO_ABORTIFHUNG 如目标进程挂起,则函数立即返回
SMTO_BLOCK 除非函数返回,否则调用线程不能处理消息
SMTO_NORMAL 允许调用线程处理消息,同时保持函数继续执行
uTimeout Long,超时值,采用毫秒为单位
lpdwResult Long,用于装载函数结果的一个变量
上改成AU3为
DllCall("user32.dll","Int","SendMessageTimeoutA","Int",    ,"Int",    ,"Int",    ,"Int",    ,"Int",    ,"Int",    ,"Int",    )
问题是如何用使用本函数已经如何遍历应用程序来检测
发表于 2011-2-23 16:06:29 | 显示全部楼层
句柄设置为65535就是广播
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 13:26 , Processed in 0.072845 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表