繁体   English   中英

AutoHotkey编译的脚本不起作用

[英]AutoHotkey compiled script not working

我编写了一个AutoHotkey脚本,该脚本运行良好,但是无论我使用哪个基本文件(.bin)来编译Ahk2Exe中的exe,它都会因某些未知原因而失败。 这是AHK脚本:

SetTitleMatchMode, 2
WinGet, PID, PID, Anime Studio ahk_class LM_Wnd
Process, Close, %PID%
if 1 && (%ErrorLevel% != 0)
{
Run, %1%
}

这是我如何运行它,从Lua脚本(双引号用于实际路径中的空格):

--to uncompiled AHK (working code)
os.execute("C:/Users/JWesley/Desktop/AutoHotkey/AutoHotkeyU64.exe ".."\"".."C:/Users/JWesley/Files/AS/Anime Studio Pro/scripts/utility/ReopenAS.ahk".."\"".." "..path)
--to compiled AHK (not working)
os.execute("\"".."C:/Users/JWesley/Files/AS/Anime Studio Pro/scripts/utility/ReopenAS64.exe".."\"".." "..path)

我将变量“path”从Lua传递给AHK脚本(%1%)。 我已经尝试将AHK编译的exe设置为以管理员身份运行,但这没有帮助。

path = "C:/Users/JWesley/Desktop/test.anime"

我尝试过使用os.execute('pause'),这样我就有机会读取任何命令提示符消息,但第一个消息仍然在暂停的消息打开之前关闭。 编辑:好的,我得到这个让提示打开:

os.execute("cmd.exe /k"..'"C:\\Users\\JWesley\\Desktop\\AutoHotkey\\AutoHotkeyU64.exe" "C:\\Users\\JWesley\\Files\\AS\\Anime Studio Pro\\scripts\\utility\\ReopenAS.ahk" "' .. path .. '"')

并在提示符中收到此消息:

The filename, directory name, or volume label syntax is incorrect.

我在这里找到了一个解决方案: 带有文件名的os.execute和包含空格的参数原来它比AutoHotkey更像Lua问题,虽然我仍然不确定为什么编译和未编译的AHK脚本之间存在差异。 在Lua中,我检查了路径是否有空格,如果是这样的话:

path = "\""..path.."\""

然后我做了:

com = "\"".."type NUL && ".."\"".."C:/Users/JWesley/Files/AS/Anime Studio Pro/scripts/utility/ReopenAS64.exe".."\"".." "..path.."\""
os.execute(com)

据说这可以防止命令行删除外部引号,这对于路径中的空格是必需的。

现在我唯一的问题是由于我的反病毒而编译的脚本运行缓慢,但这是一个单独的问题。

感谢您的反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM