Autohotkey AHK GUI不工作

Autohotkey AHK GUI不工作,autohotkey,Autohotkey,我使用下面的AHK脚本弹出带有复选框的屏幕。我的想法是,当我选中复选框时,它应该打开一个文件夹。它对第一个有效,但当我检查第二个时,什么都没有发生。你知道我的代码有什么问题吗 Gui, Add, Checkbox, vOpen, Open Bedrijfsbureau Gui, Add, Checkbox, vOpen2, Open Gui, Add, Button, Default gButtonGo, Go Gui, Show, w500 h300, Products Return

我使用下面的AHK脚本弹出带有复选框的屏幕。我的想法是,当我选中复选框时,它应该打开一个文件夹。它对第一个有效,但当我检查第二个时,什么都没有发生。你知道我的代码有什么问题吗

Gui, Add, Checkbox, vOpen, Open Bedrijfsbureau
Gui, Add, Checkbox, vOpen2, Open 


Gui, Add, Button, Default gButtonGo, Go
Gui, Show, w500 h300, Products
Return

ButtonGo:
Gui, Submit
Gui, Destroy


If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return

If Open2 = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau\Dimensioneren"
Return


GUIClose:
Gui, Destroy

使用不带花括号的
if
语句时,if语句只读取以下行

这意味着当您这样做时:

If Open = 1
Run "X:\SSC_HR\SENS\Bedrijfsbureau"
Return
…节目结束了。if语句执行run命令,
返回
,无论发生什么情况,都会得到处理

因此,如果需要多行,请尝试以下方法:

If(Open = 1){
    Run "X:\SSC_HR\SENS\Bedrijfsbureau"
    Return
}
而且,无论如何都不会发生任何事情!首先,当您选中该复选框时,您没有子项来处理该复选框。换句话说,当您单击复选框时,不应该发生任何事情。所以,我想你只想在按下“开始”按钮时发生事情

这很好,但是go按钮做了两件事:它获取复选框的值,然后退出GUI---->这就是程序无法工作的原因

您想这样做,请改为:

Gui, Add, Checkbox, vOpen, Open Bedrijfsbureau
Gui, Add, Checkbox, vOpen2, Open 


Gui, Add, Button, Default gButtonGo, Go
Gui, Show, w500 h300, Products
Return

ButtonGo:
    ;fetch the value of the checkbox variables
    Gui, Submit 

    If Open = 1
    Run "X:\SSC_HR\SENS\Bedrijfsbureau"

    If Open2 = 1
    Run "X:\SSC_HR\SENS\Bedrijfsbureau\Dimensioneren"

    ;Now, if you want the gui to close after the actions are complete, then uncomment the next line - if you want the gui to remain, then don't uncomment it.
    ;Gui, Destroy
RETURN

GUIClose:
Gui, Destroy
最后,在这个场景中,您可以执行一个或两个checkbox命令。如果您只需要其中一个,则应使用单选按钮

对于运行主功能的热键:

#x::
gosub, ButtonGo
return

如果希望热键打开GUI,则需要将GUI封装在gosub中并更改热键的命令。

BGM,太棒了。谢谢还有一个问题,如果我想用快捷方式运行这个程序,我应该添加什么?我试着在它前面加上::#x,但效果不好,你已经把命令倒过来了——你应该阅读文档中的热键,你知道。我会把它添加到你的答案中。