【问题标题】:AHK GUI does not workAHK GUI 不工作
【发布时间】:2014-02-14 09:46:07
【问题描述】:

我正在使用以下 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

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    当您使用不带大括号的if 语句时,if 语句仅读取以下行。

    这意味着当你这样做时:

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

    ...程序结束。 if 语句执行运行命令,无论如何都会处理return

    所以,如果你想要多行,试试这个:

    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
    

    最后,在这种情况下,您可以执行一个或两个复选框命令。如果您只需要其中一个,则应使用单选按钮。

    对于运行主要功能的热键:

    #x::
    gosub, ButtonGo
    return
    

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

    【讨论】:

    • BGM,太棒了。谢谢!还有一个问题,如果我想用快捷方式运行这个程序,我应该添加什么?我尝试在它前面添加 ::#x 但这不起作用
    • 好吧,你已经把命令倒过来了——你应该阅读热键的文档,你知道的。我会为你添加到答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    相关资源
    最近更新 更多