mnday 发表于 2014-3-29 00:52:36

WinWaitActive问题

本帖最后由 mnday 于 2014-3-29 01:29 编辑

小弟写的工具构思:
1,使用系统自带的MSRA工具发起远程协助请求;
2,通过脚本将请求以邮件形势发送给远程协助方;
3,远程协助方通过请求文件连接至发起方;
4,发起方自动点击确定允许远程协助方操作桌面;

问题出在最后一步,使用WinWaitActive语句以后,一定是窗体处于活动状态才会点击“是”,否则就停在此界面,我也尝试使用了winwait,无效。请各位大能帮忙解决。非常感谢!



问题代码:;监控本地窗体,点击按钮允许远程控制
WinWaitNotActive("Windows 远程协助", "是")
ControlClick("Windows 远程协助", "是", "")

user3000 发表于 2014-3-29 12:12:02

回复 1# mnday

可以自己弄个比较“兼容”的函数来代替一些内置的,这样应该会更好用。
比如:Local $sTitle = 'Windows 远程协助'

If _WinWaitActive($sTitle, '是', 5) Then
    ControlClick($sTitle, "是", "")
Else
        MsgBox(16, 'Err', '激活目标窗口超时!')
EndIf

Func _WinWaitActive($sTitle, $sText = '', $iDiff = 2)
        Local $iTime = TimerInit()
        Do
                Sleep(100)
                If WinActivate($sTitle, $sText) Then Return True
        Until TimerDiff($iTime) > $iDiff*1000
        Return False
EndFunc

mnday 发表于 2014-3-29 13:41:00

问题已解决。加上窗口置顶函数即可。WinWaitActive("Windows 远程协助", "是")
WinSetOnTop("Windows 远程协助", "是", 1)
ControlClick("Windows 远程协助", "是", "")
页: [1]
查看完整版本: WinWaitActive问题