我有四个在启动时运行的 AHK 脚本,因为它们在我的启动文件夹中放置了快捷方式。我怎样才能让它们以管理员身份运行?
我尝试过的:
我尝试将它们的属性更改为以管理员身份运行,但它们就是不运行(当我这样做时)。
我尝试将其快捷方式的属性更改为以管理员身份运行,但它们也只是不运行(当我这样做时)。
我已经看过关于该主题的this reddit post,但我不知道如何在脚本中实现该代码。
我尝试创建一个基本的 C++ 应用程序,使用
system("start path\\to\\script")
运行它们,但它无法编译。
如果重要的话,有问题的脚本是 ahk-active-screenshot、CtrlAlt_Switch.ahk、Kill.ahk 以及 此搜索脚本的修改版本。
您可以允许脚本自动化管理程序,而无需以管理员身份运行,以下是所需的步骤:
AutoHotkeyU64_UIA.exe
。.ahk
脚本的属性,将“打开方式”选项更改为您刚刚找到的AutoHotkeyU64_UIA.exe
。%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
。你就完成了。
它是如何工作的?
“将‘使用 UI 访问权限运行’添加到上下文菜单”选项为常见的 UAC 相关问题提供了一种解决方法,允许脚本在不以管理员身份运行的情况下自动执行管理程序。
参考:使用 UI 访问运行。
在您的计算机上找到 autohotkey 的 UIA 版本。对我来说是
C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe
。
在您的启动文件夹中,创建一个新的快捷方式(可能为您想要的每个脚本创建一个),如下所示(根据需要替换路径):
这会在启动时使用 UIA 版本的 AHK 以管理员身份启动您的脚本。
将此添加到脚本顶部:
If (!A_IsAdmin) ; IF NOT Admin
{
Run, *RunAs "%A_ScriptFullPath%" ; Run script as admin
ExitApp ; Exit the current instance running without admin privileges
}
MsgBox, 262144, , Running with admin privileges! ; Continue your code...