Autohotkey 自动热键:运行后MsgBox“完成”

Autohotkey 自动热键:运行后MsgBox“完成”,autohotkey,msgbox,Autohotkey,Msgbox,我有一个python脚本,我想在快捷键上运行,但我想让Msgbox告诉我它完成后就完成了。我该怎么做 我试着把MsgBox放在不同的地方,就像这样 F8::Runwait, C:\python36\python.exe "C:\Users\jason\Google Drive\pycharm\test.py"; MsgBox, Done F9::Run, C:\python36\python.exe "C:\Users\jason\Google Drive\pycharm\test1.py

我有一个python脚本,我想在快捷键上运行,但我想让Msgbox告诉我它完成后就完成了。我该怎么做

我试着把MsgBox放在不同的地方,就像这样

F8::Runwait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test.py"; 
MsgBox, Done
F9::Run, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test1.py"; 
MsgBox, Done1
在文档的Run或MsgBox部分中没有看到任何此类示例

希望在执行任何热键后执行。

是否可以使用而不是运行,以便程序在继续之前等待脚本完成?如果希望执行多行,还需要使用多行热键语法。以下是您的脚本的编辑版本:

F8::
    RunWait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test.py"; 
    MsgBox, Done
    Return

F9::
    RunWait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test1.py"; 
    MsgBox, Done1
    Return
请注意,如果您的python脚本启动另一个进程,您的自动热键脚本将不会等待第二个进程。

您是否可以使用而不是运行,以便程序在继续之前等待脚本完成?如果希望执行多行,还需要使用多行热键语法。以下是您的脚本的编辑版本:

F8::
    RunWait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test.py"; 
    MsgBox, Done
    Return

F9::
    RunWait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test1.py"; 
    MsgBox, Done1
    Return

请注意,如果python脚本启动另一个进程,自动热键脚本将不会等待第二个进程。

要让热键执行多个命令,请将第一行放在热键定义下面,并将最后一行作为返回:

F8::
Runwait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test.py"; 
MsgBox, Done
return

要让热键执行多个命令,请将第一行置于热键定义下方,并将最后一行设为返回:

F8::
Runwait, C:\python36\python.exe  "C:\Users\jason\Google Drive\pycharm\test.py"; 
MsgBox, Done
return

这对我来说很有效,但你的格式似乎也有点不对劲。RunWait命令与F8::hotkey位于同一行,因此AutoHotkey只运行该命令。在这种情况下,您需要执行多行,因此需要将所有内容放在热键下面。我已经更新了我的答案来演示这一点。它被标记为accepted answer,这样就可以了,但请注意,在某些情况下,在RunWait下执行脚本时,脚本将在脚本完成之前返回-特别是当脚本调用其他函数、脚本或与其他程序交互时。因此,了解脚本何时完成的真正答案将涉及更多内容,例如写入文件并由AHK脚本检查,或者将结果发送到StdOut或StdErr,然后由AHK等待结果。或者甚至将py和AHK中的内容放入剪贴板,等待剪贴板更改事件。但是OP需要这些吗?这取决于你如何定义完成。RunWait等待它启动的进程死亡。我相信你想说的是,这个过程可能会启动其他过程,而当第一个过程完成时,这些过程可能还没有完成+1对于合理的关注点,我将把它添加到我的答案中。它对我很有效,但你的格式似乎也有点不正确。RunWait命令与F8::hotkey位于同一行,因此AutoHotkey只运行该命令。在这种情况下,您需要执行多行,因此需要将所有内容放在热键下面。我已经更新了我的答案来演示这一点。它被标记为accepted answer,这样就可以了,但请注意,在某些情况下,在RunWait下执行脚本时,脚本将在脚本完成之前返回-特别是当脚本调用其他函数、脚本或与其他程序交互时。因此,了解脚本何时完成的真正答案将涉及更多内容,例如写入文件并由AHK脚本检查,或者将结果发送到StdOut或StdErr,然后由AHK等待结果。或者甚至将py和AHK中的内容放入剪贴板,等待剪贴板更改事件。但是OP需要这些吗?这取决于你如何定义完成。RunWait等待它启动的进程死亡。我相信你想说的是,这个过程可能会启动其他过程,而当第一个过程完成时,这些过程可能还没有完成+1对于合理的担忧,我会将其添加到我的答案中。