【问题标题】:autohotkeys expression not evaluating自动热键表达式未评估
【发布时间】:2015-03-28 21:48:41
【问题描述】:

我有一个简单的自动热键宏来测试窗口是否处于活动状态。如果它处于活动状态,我想做一些事情,然后停止,直到窗口变为非活动状态,然后再次重新激活。

问题是我对窗口之前是否处于非活动状态的测试不起作用。这是我的代码:

^w::
;hotkey always fires


done = false

SetTimer, CheckPopups, 10000    ; check every 10 seconds for annoying popup

CheckPopups:


if ( WinActive("Volume Spike - Down") )  
{
;specific lines only when active window is true
msgbox (%done%)
if (!done) {
  msgbox hello
  done := true

 }
}

IfWinNotActive Volume Spike - Down
{
done = false
msgbox Not
}

Return

当它运行时,我得到第一个消息框,指示完成状态(一开始是假的)。但是 (!done) 不会评估为 true,并且不会触发第二个消息框 (hello)。知道这里有什么问题吗?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    AutoHotkey 将true / false-布尔表达式设想为1 / 0。如果我是你,我根本不会使用以前的关键字。

    但是,您仍然可以,您只需将初始化更改为

    done := false
    

    (存储表达式)。 done = false 实际上与done := "false" 相同(字符串赋值)。 Afaik,您也可以将其更改为

    done = %false%
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多