【发布时间】:2016-09-13 01:40:00
【问题描述】:
我已经编写了一个未编译的 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.
【问题讨论】:
-
exe如何失败?是否根本无法运行?或者它运行时会产生意想不到的结果吗?如果运行,命令行参数的内容是什么?我不知道lua,如果您以更通用的语法显示您传递的参数,也许会有所帮助。您是否考虑过difference between compiled and uncompiled scripts?
-
什么是
path?是相对的吗?也许问题是可执行文件在不同的目录中(未编译:C:\AutoHotkey,已编译:C:\)? -
使用
's 声明的字符串不需要转义"s。 -
@MCL 命令提示符出现,但在我阅读任何错误消息之前关闭。我将研究如何让 AHK 或 Lua 返回这些。或者也许有一个命令行开关来保持提示打开?是的,我从 Lua 中展示了调用 AHK 脚本的未编译和编译版本的路径。
-
@CherryDT 路径是绝对的。 AHK 可执行文件应该包含解释器等,因此编译后的脚本不需要访问它。
标签: windows command-line lua autohotkey