Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autohotkey 停止底层子组件_Autohotkey - Fatal编程技术网

Autohotkey 停止底层子组件

Autohotkey 停止底层子组件,autohotkey,Autohotkey,在我的脚本中有两个sub。父Sub启动子Sub 现在,我想使用热键停止ChildSub,但我希望父sub在脚本不终止的情况下继续 在这里的示例中,msgboxes将按以下顺序显示:1,2,3,4 当我启动脚本时,msgbox1将出现,但我想按下escape并停止Childsub,因此我应该看到:1,4 如果不在ChildSub中添加逻辑,我如何做到这一点?如果您愿意编辑父sub,您可以这样做 一个问题是热键触发psuedo线程,因此变量的内存空间在主线程中不可见。解决方法是创建一个热键,该热键创

在我的脚本中有两个sub。父Sub启动子Sub

现在,我想使用热键停止ChildSub,但我希望父sub在脚本不终止的情况下继续

在这里的示例中,msgboxes将按以下顺序显示:1,2,3,4

当我启动脚本时,msgbox1将出现,但我想按下escape并停止Childsub,因此我应该看到:1,4


如果不在
ChildSub
中添加逻辑,我如何做到这一点?

如果您愿意编辑父sub,您可以这样做

一个问题是热键触发psuedo线程,因此变量的内存空间在主线程中不可见。解决方法是创建一个热键,该热键创建一个空白文件作为标记 所以让我们先按住ctrl+1键

^1:: fileappend, ,stopchild
然后你把它添加到你的parentsub

if !FileExist( stopchild )
gosub, ChildSub
第二个热键调用filedelete将重新启用子项


~tank ahkscript.org

在您描述的边界内不可能。但是,您可以使用在新(实际)线程中启动子线程。此线程将提供函数
ahkTerminate
。如前所述:您的示例似乎并不代表真正的问题。如果你也有这个问题,我们肯定会找到另一种方法。谢谢你。问题是调用
childsub
后,它不会停止运行。它首先只会阻止
childsub
运行。
if !FileExist( stopchild )
gosub, ChildSub