我有一个用于文本扩展的简单脚本。布局类似于以下内容:
::.sig::
SendInput This Is My Signature
Return
由于某种原因,该脚本会定期停止响应。当我键入.sig
并插入空格时,不会执行任何可见的操作。如果我在通知区域中右键单击AutoHotKey图标,然后选择Reload Script
菜单项,它将针对其他几个扩展再次开始工作,然后将再次停止。
我已经通过SciTE4AutoHotkey在调试模式下运行了它,没有失败。谁能推荐我可以采取的其他故障排除步骤?
1
不看脚本,很难说出什么毛病。最常见的原因是缺少返回(脚本不会从执行之前跳转到的子例程中返回)。否则该脚本可能需要管理员权限才能正常运行(如果提升了运行的另一个程序)...
—
user3419297
我明白。不幸的是,考虑到我的样板响应用例,其中有很多潜在的敏感信息无法发布。我可以考虑用另一个脚本重现问题。也许就足够了。我可以说我真正发布的代码段代表了该结构。没有控制流,函数定义中只有三个带有不同文本的块。有什么方法可以查看AHK是否会丢失旨在触发脚本的输入?钩子可能过时了吗?
—
bshacklett
为什么不使用两个脚本?他们不会互相咬,将50%的内容移至新脚本并同时运行两者。在某个时候,您将看到哪个停止工作。如果每个字符串都相同,则将一些热字符串从“不工作的”字符串移到“工作的”字符串,依此类推。在某些时候,您会发现可能有错误的“一个”。替代方法:向脚本添加SetTimer,以每隔五分钟左右自动重新加载(即命令)脚本。
—
lintalist
曾经在多功能脚本中添加更多内容而使我非常痛苦的事情是要么在代码块的前面没有#IfWinActive语句,要么在脚本的末尾没有#IfWinActive(已针对当时还有其他问题,我不确定这是否仍然是一个问题)。这些听起来都不像是您的特定问题,但是额外的#IfWinActive语句不会对您造成任何伤害,并且可以防止意外损坏。
—
JJohnston2
进行故障排除的另一件事可能是打开正在通过托盘运行的脚本,并查看执行的最后
—
几