如何无需右键点击「以管理员身份运行」,让AHK脚本以管理员权限启动?
AutoHotkey脚本双击自动申请管理员权限方法
方案1:单脚本生效(优先推荐)
无需修改系统配置,仅对当前添加代码的脚本生效,在脚本最开头加入以下代码即可:
AutoHotkey v1 版本代码
full_command_line := DllCall("GetCommandLine", "str") if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)")) { try { if A_IsCompiled Run *RunAs "%A_ScriptFullPath%" /restart else Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%" } ExitApp }
AutoHotkey v2 版本代码
if not A_IsAdmin { try Run '*RunAs "' (A_IsCompiled ? A_ScriptFullPath : A_AhkPath) '" /restart "' A_ScriptFullPath '"' ExitApp }
代码逻辑说明:
- 脚本启动后首先校验当前是否已经拥有管理员权限
- 若未获取权限,自动触发UAC权限申请弹窗,用户确认后自动重启脚本执行后续逻辑
- 兼容未编译的
.ahk源文件,以及已经编译为.exe的可执行文件
方案2:全局所有AHK脚本生效
如果需要本地所有.ahk后缀的脚本双击都自动触发UAC申请,可以修改系统注册表配置:
- 按下
Win+R打开运行窗口,输入regedit回车打开注册表编辑器 - 定位到路径:
计算机\HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Open\Command - 双击修改默认项的数值数据,在AHK主程序路径后添加
*RunAs参数,修改后完整数值参考如下(路径需匹配你本地的AHK安装路径):"C:\Program Files\AutoHotkey\AutoHotkey.exe" *RunAs "%1" %* - 保存修改后即可生效
内容的提问来源于stack exchange,提问作者Chypilidus Lordius
相关产品推荐
相关产品推荐

