【问题标题】:How to capture window focus events in autoit v3如何在 autoit v3 中捕获窗口焦点事件
【发布时间】:2013-05-12 19:28:58
【问题描述】:

假设我打开了一些 Windows,然后我启动我的 AutoIt 脚本。

现在每当用户点击一个窗口时,它就会获得焦点(激活),在这里我想执行一些代码。

所以基本上我想捕捉某种 windowFocusedwindowActivated 事件。

  • 一种方法是使用 WinList() 获取所有窗口的列表,遍历它们,使用 WinActive() 检查哪个窗口处于活动状态,但它' 效率太低,因为这种检查必须在无限循环中执行。

我想要一些比无限循环更好的解决方案。

【问题讨论】:

    标签: autoit


    【解决方案1】:

    这仍在使用无限循环,如果您一直在寻找 Windows,我不确定您如何摆脱它。但是您不必使用 WinList()。只是一个简单的while循环:

    While 1
      If WinActive("Notepad") Then
          ; do something    
      ElseIf WinActive("Wordpad") Then
          ; do something else
      EndIf
    WEnd
    

    【讨论】:

    • WinList() 是必要的,因为脚本不会知道任何关于“当前”打开的窗口甚至它们的标题等。
    • @JonBecher:感谢您的编辑,但您不需要使用 <br> 标记并用 ` 包围文本。您可以使用四个空格缩进所有内容,或者选择文本并使用代码格式化 (CTRL+K) 按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    相关资源
    最近更新 更多