找回密码
 加入
搜索
查看: 2084|回复: 5

[AU3基础] 窗口焦点的问题

  [复制链接]
发表于 2012-5-2 10:11:09 | 显示全部楼层 |阅读模式
我是新手,问个小白问题,别笑话我啊

就是我想对一个指定的窗口发送键盘按键

当这个窗口的焦点丢失(比如最小化窗口时),我想让这个脚本暂停。窗口恢复焦点时,脚本又运行!

代码要用到哪些?谢谢指教!
发表于 2012-5-2 10:53:35 | 显示全部楼层
回复 1# jackly
最好自己也查看帮助里的相应函数, 才会有更深的理解和体会!
Run("notepad.exe")        
; 最多等待 10 秒, 记事本窗口一激活则立即继续下面代码
Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
Sleep(2000); 延迟2秒钟, 请设置记事本窗口状态, 测试代码运行情况
Example()

Func Example()
While 1
        Sleep(60) ; 适当加点延迟, 以降低CUP占用率
        ; 获取 $hwnd 句柄 指向的窗口的状态
        Local $iState = WinGetState($hWnd)
        ; 检查该窗口是 激活状态 则退出循环
        If BitAND($iState, 8) Then         ExitLoop
WEnd
        Send('记事本是激活状态, 开始发送字!')
        ; 关掉记事本窗口
        WinClose($hWnd)
EndFunc   ;==>Example
 楼主| 发表于 2012-5-2 11:12:44 | 显示全部楼层
回复 2# user3000
十分感谢楼上的大神
发表于 2012-5-2 11:16:01 | 显示全部楼层
回复 3# jackly

    不要这样称呼, 当不起呀!
这也只是基本运用的东西, 你多看帮助文件, 多点练习, 慢慢地就掌握了.
如果问题解决了, 请记得遵守论坛规则, 编辑帖子标题, 加入'已解决'字样!
发表于 2012-5-2 11:40:00 | 显示全部楼层
回复 1# jackly
我想应该不是让脚本暂停,脚本一直执行检测指定窗口是否被激活,如果激活就发送按钮。用WinActive ( "窗口标题" [, "窗口文本"] )函数来检测就行了。

while 1 
if WinActive("你指定的窗口标题文本", "窗口内的一些文本") then Send("what")
sleep(100)
Wend


当然上述代码会连续发送按键信息,只要指定窗口被激活,看你要怎么做,再可以加上其他条件。

评分

参与人数 1金钱 +15 贡献 +2 收起 理由
user3000 + 15 + 2 按楼主要求来说,是最简洁的!

查看全部评分

发表于 2012-5-3 22:49:26 | 显示全部楼层
马上回去试试
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 13:02 , Processed in 0.077050 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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