所以我有两个脚本shell:startup
。一个是一堆热键,当我按下 ctrl+c/a/s/等时它们会执行各种操作,另一个用于在启动时运行一次,仅此而已。
问题是启动脚本不起作用。开机时没有任何反应。
如果我手动运行脚本,它确实按预期工作。我尝试添加睡眠,因为我认为它可能在加载某些必需内容之前就运行了,但仍然没有运气,即使延迟了 10 分钟。脚本从不执行任何操作,它从不显示在任务栏中。
问题是什么?
如果需要的话我可以提供脚本,但由于它看起来根本没有加载,所以我不认为这是一个编码问题。
答案1
不确定您是否在 Windows 10 之前的版本中运行过此功能,但当我从 Windows 7 升级时,我发现我的一些 AutoHotKey 脚本在加载时停止工作。我终于明白这是因为它们现在需要管理员权限(我不认为它们在 Win7 中需要这些权限),但 Win10 阻止shell:startup
和shell:common startup
位置中的项目以管理员身份运行。
我的解决方案有点复杂,但效果很好。基本上,我将脚本放在正常(非启动)位置,例如,C:\Users\xyz\Documents
然后在同一位置创建该脚本的快捷方式。然后,您可以将快捷方式的属性设置为以管理员身份运行。最后,在该shell:startup
位置,我创建了一个可以自动运行并调用快捷方式的批处理文件:
start "MyScript" /D "C:\Users\xyz\Documents\" /B MyScript.ahk.lnk
答案2
我在win10中遇到了同样的问题,解决方法是直接编辑启动注册表。
- 跑步注册表编辑器
- 浏览至 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- 添新字符串值
- 为了值数据,输入 .ahk 文件的路径
就是这样。
答案3
我发现了另一个可能比以前更好的解决方案。
当我开始使用 AHK 时,我将所有.ahk
文件都放在一个文件夹中。但是,我想每个人都这样做。在这种情况下,使用 bat 文件运行所有这些文件非常容易。它就像这样:
@echo off
cd f:/hotkeys
for /f %%f in ('dir /b /s .') do start %%f
创建一个包含此类内容的文件并将其放在启动目录中:Win+R
> shell:startup
。就是这样。