[英]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.