【问题标题】:AutoHotkey compiled script not workingAutoHotkey 编译的脚本不起作用
【发布时间】: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


【解决方案1】:

我在这里找到了一个解决方案:os.execute with filename and argument containing spaces 事实证明它比 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)

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

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

感谢您的反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多