我把它编译成可执行文件,但要打开它我必须右键单击并按“以管理员身份运行”。我想让它在每次运行时请求管理员权限,但是怎么做?
我不能这样做:
因为当我将它复制到第二台计算机时它不起作用。
答案 0 :(得分:10)
尝试将其添加到自动执行部分(脚本顶部):
; If the script is not elevated, relaunch as administrator and kill current instance:
full_command_line := DllCall("GetCommandLine", "str")
if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
{
try ; leads to having the script re-launching itself as administrator
{
if A_IsCompiled
Run *RunAs "%A_ScriptFullPath%" /restart
else
Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
}
ExitApp
}
并重新编译脚本。
有关详细信息,请参阅https://autohotkey.com/docs/commands/Run.htm#RunAs。
答案 1 :(得分:-2)
这是用于此目的的简单得多的代码:
if not A_IsAdmin
Run *RunAs "%A_ScriptFullPath%"
如果尚未以Admin身份运行,它将以Admin身份运行脚本。