如何在VS代码中创建一个自定义tasks.json或launch.json,它只是运行一个可执行文件,没有输出



如果这给人的印象是愚蠢或愚蠢的,请原谅我,但我是vscode的新手,正在重新开始编程,我遇到了这个"问题",遇到了麻烦。。

我正试图在VS Code中为AutoHotKey脚本设置一个任务或启动器,它只需从命令行以文件位置和开关为参数运行auto热键。就是这样。没有要分析的输出,也没有要实际调试的输出。我安装了一个具有运行脚本功能的扩展程序,但它的编码方式无法解释目录或文件名中是否有空格,所以它对我不起作用。我想没什么大不了的,我可以自己想办法做到这一点。

我创建了这个任务:

{
"version": "2.0.0",
"tasks": [
{
"label": "Run AutoHotKey Script",
"type": "shell",
"group": "none",
"command": "autohotkeyu64.exe",
"args": [
"/r",
"${file}"
],
"detail": "Load script into AutoHotKeyU64.exe and run"
}
]
}

我添加了authotkey文件夹作为系统路径,当我运行任务时,它工作得很好。

但是,终端坐在那里,认为它仍然在运行一项任务——任务永远不会结束。当我想重新加载脚本时,我会在下角收到一个通知,说任务仍在运行;我想终止还是重新启动。

所以我想也许把它设置为一项任务是不对的,我试着用launch.js让它以同样的方式工作,但它从来没有真正打开自动热键。。它没有给出任何错误,但实际上并没有运行可执行文件,所以我不确定哪里出了问题,无论哪种方式,都没有什么可调试的东西,也没有vs代码的输出可解释。

有什么办法我能做到这一点吗?我的意思是,这只是一个小小的通知,也是我必须采取的额外步骤。。。但总有办法的,对吧?VS Code到底在寻找什么来终止任务?我怎么能敷衍了事?

任何帮助都非常感谢

感谢

好吧,我找到了一种方法,但我仍然想知道任务或启动是否可行。。

我发现了命令"workbench.action.terminal.sendSequence",并能够将args文本设置为"auto热键u64/r\"${file}\",并应用了密钥绑定,它将发送到终端,但随后我必须专注于它并实际发送命令。。

所以我尝试了workbench.action.terminal.runActiveFile,由于我的系统路径和文件关联上有自动热键,它实际上只需将脚本传递到终端即可运行脚本,非常酷。但出于某种原因,我设置的args,在本例中为"/r"(它强制重新加载脚本而不是新实例,并避免消息框通知(没有;不起作用。VSCode对参数没有问题,但它实际上并没有使用它们。

长话短说,我发现我只需要在我的自动热键脚本顶部添加一个选项"#SingleInstance Force",它就会自动执行重新加载。。

一切都很好。。。

我仍然很乐意听到任何其他方法的建议来实现这一点——除了编写一个自动热键脚本来完成这一点之外。

既然我想出了一个方法,我觉得发帖有点愚蠢。。老实说,我花了这么长时间试图做到这一点,我真的觉得我别无选择,只能忍气吞声,在网上提问。。但事情似乎总是这样。。。

我很难完全理解你想做什么或你的真正需求,所以如果我的答案可能不合适,请原谅。

如果你想在vscode中运行AHK脚本,我个人使用代码运行程序和AHK++扩展。在这里,您必须正确设置设置。

对我来说,settings.json看起来像:

代码运行程序设置:

"code-runner.executorMap": {   
"ahk": "D:\Programs\AutoHotkey\AutoHotkeyU64.exe"
},
"code-runner.executorMapByFileExtension": {
".ahk": "D:\Programs\AutoHotkey\AutoHotkeyU64.exe"
},

ahk++设置:

"ahk++.showDebugButton": true,
"ahk++.executePath": "D:/Programs/AutoHotkey/AutoHotkeyU64.exe",
"ahk++.compilePath": "D:/Programs/AutoHotkey/Compiler/Ahk2Exe.exe",
"ahk++.helpPath": "D:/Programs/AutoHotkey/AutoHotkey.chm"

最新更新