Compiler errors 复合if语句的自动热键在同一行上阻塞大括号

Compiler errors 复合if语句的自动热键在同一行上阻塞大括号,compiler-errors,autohotkey,curly-braces,Compiler Errors,Autohotkey,Curly Braces,我有一个问题,自动热键告诉我在“else”前面有一个缺失的{,我认为我的代码非常好。(直到我将窗口相关的if从Pidgin更改为qutIM) 我担心我忽略了一些愚蠢的事情,但我似乎无法让它正常工作。如果我没有弄错的话,一个真正的大括号样式只能用于纯If语句,而不能用于IfWinExist这样的复合语句 : 一个真正的大括号(OTB)样式可以选择与 如果语句是表达式(但不是传统的 if语句) 你必须使用WinExist()形式,而不是IfWinExist。如果我没有弄错的话,一个真正的大括号样式只

我有一个问题,自动热键告诉我在“else”前面有一个缺失的
{
,我认为我的代码非常好。(直到我将窗口相关的if从Pidgin更改为qutIM)


我担心我忽略了一些愚蠢的事情,但我似乎无法让它正常工作。

如果我没有弄错的话,一个真正的大括号样式只能用于纯If语句,而不能用于IfWinExist这样的复合语句

:

一个真正的大括号(OTB)样式可以选择与 如果语句是表达式(但不是传统的 if语句)


你必须使用WinExist()形式,而不是IfWinExist。

如果我没有弄错的话,一个真正的大括号样式只能用于纯If语句,不能用于像IfWinExist这样的复合词

:

一个真正的大括号(OTB)样式可以选择与 如果语句是表达式(但不是传统的 if语句)


例如,您必须使用WinExist()表单,而不是IfWinExist。

由于我没有您正在测试的应用程序,我不确定您想让它做什么,但这可能是另一种方法:

^!p::
IfWinExist, ahk_class Notepad ; if there is a qutIM-window other than the buddy-list
    {
    WinActivate
    Exists=True
    }
else ;the closing bracket in front of the else here puts AHK off...
    {
    WinMinimize
    Exists=False
    }
If Exists=True 
    MsgBox, do some stuff with the buddy-list ; dummy code
Else
    {
    Msgbox, Exiting App ; dummy code
    ExitApp
    }

由于我没有你正在测试的应用程序,我不确定你想让它做什么,但这可能是另一种方式:

^!p::
IfWinExist, ahk_class Notepad ; if there is a qutIM-window other than the buddy-list
    {
    WinActivate
    Exists=True
    }
else ;the closing bracket in front of the else here puts AHK off...
    {
    WinMinimize
    Exists=False
    }
If Exists=True 
    MsgBox, do some stuff with the buddy-list ; dummy code
Else
    {
    Msgbox, Exiting App ; dummy code
    ExitApp
    }
,一个真大括号(OTB)样式不能与复合if语句一起使用

虽然没有用于
WinNotActive()
的直接函数,但您可以使用
作为修改器以获得相同的效果

^!p::
   if WinExist("ahk_class QWidget", , "qutIM") {
      if !WinActive("ahk_class QWidget", , "qutIM") {
         WinActivate
      } else {
         WinMinimize
      } 
   } else {
      ; [...]
   } 
return
,一个真大括号(OTB)样式不能与复合if语句一起使用

虽然没有用于
WinNotActive()
的直接函数,但您可以使用
作为修改器以获得相同的效果

^!p::
   if WinExist("ahk_class QWidget", , "qutIM") {
      if !WinActive("ahk_class QWidget", , "qutIM") {
         WinActivate
      } else {
         WinMinimize
      } 
   } else {
      ; [...]
   } 
return

非常感谢,这是我问题的解决方案(但我仍然想知道为什么它在o.o.之前有效)@StevenVascellaro显然,你回答了自己的问题,这是一件好事…:-)非常感谢,这是我问题的解决方案(但我仍然想知道为什么它在o.o.之前有效)@StevenVascellaro显然,你回答了自己的问题,这是一件好事…:-)这是关于打开/隐藏多窗口即时通讯客户端的聊天窗口…正如PhiLho指出的,我只是对我的if使用了错误的符号,但无论如何,谢谢;)这是关于打开/隐藏多窗口即时通讯客户端的聊天窗口…如PhiLh所说o pointet指出,我只是对我的if使用了错误的符号,但无论如何,谢谢;)