【问题标题】:Autohotkey: Open windows explorer and wait till active window before proceedingAutohotkey:打开 Windows 资源管理器并等到活动窗口再继续
【发布时间】:2014-07-27 00:56:51
【问题描述】:

真的很挣扎。

我只需要在指定域中打开一个 Windows 资源管理器窗口,等到它处于活动状态然后继续。这是我目前所拥有的:

#::
{
  WinGet, old_active, ID, A
  Run, explore C:\Users\Nathan\Documents\Test FDA

  loop{
    WinGet, new_active, ID, A
    if(ahk_id %new_active% != ahk_id %old_active%)
    {
      WinMaximize, A
      break
    }
  }
  return
}

编辑已解决?>>>

不知道窗口间谍已经存在 :(((

浪费了很长时间,这很有效。

[::

{

Run explore C:\Users\Nathan\Documents\Test FDA

WinWaitActive Test FDA

WinMaximize A

return

}

【问题讨论】:

  • 请注意,您可能希望先使用 WinWait,然后再使用 WinActivate。我发现如果你打开了一些需要前台的东西,比如 cmd.exe,那么窗口将永远不会自己激活。

标签: autohotkey


【解决方案1】:

这个怎么样?:

" F12:: 窗口浏览器: WinWaitActive, Windows 资源管理器,, 0.01 如果错误级别 { 转到WINDOWEXPLORER } 别的 { ; SoundBeep 4500, 30 返回 } "

【讨论】:

    【解决方案2】:

    我认为您正在寻找WinWaitActive 函数。来自文档:

    等到指定的窗口处于活动状态

    把它放在Run...的行之后:

    WinWaitActive, WinTitle
    

    您需要将WinTitle 替换为Run 命令之后出现的窗口标题。还有其他可用选项,例如等待时间、要排除的标题等。

    有关详细信息,请参阅documentation

    【讨论】:

    • 我看过其他方法,但它是为了工作。关于 WinTitle Autohotkey 说它在引用 Windows 资源管理器窗口时使用非法密钥作为 autohotkey :( 这就是我使用 ID 的原因。感谢您的帮助!
    • 我也找不到/想办法在没有激活 WinTitle 的情况下获得它。
    • WinTitle 不需要精确——它将使用SetTitleMatchMode 进行匹配。例如,您可以只指定开头,也可以指定 WinTitle 中包含的字符串。
    • 谢谢,我会试试的,如果它有效,我会发布:) 再次感谢
    猜你喜欢
    • 2021-12-17
    • 2017-01-28
    • 1970-01-01
    • 2018-07-28
    • 2022-12-09
    • 2018-06-17
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多