如何为 AutoHotkey 脚本添加管理员权限?

Posted

技术标签:

【中文标题】如何为 AutoHotkey 脚本添加管理员权限?【英文标题】:How to add administrator privileges to AutoHotkey script? 【发布时间】:2017-09-04 01:33:59 【问题描述】:

我将它编译为可执行文件,但要打开它,我必须右键单击并按“以管理员身份运行”。我希望它每次运行时都请求管理员权限,但怎么做呢?

我做不到:

因为当我将它复制到第二台计算机时它不起作用。

【问题讨论】:

【参考方案1】:

尝试将此添加到自动执行部分(脚本顶部):

; 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。

【讨论】:

【参考方案2】:

这里有一个更简单的代码:

#SingleInstance Force

if not A_IsAdmin

  Run *RunAs "%A_ScriptFullPath%"

如果脚本尚未以管理员身份运行,它将以管理员身份运行。

如果您的脚本顶部没有#SingleInstance Force,它会询问您是否要将正在运行的脚本(不是管理员)替换为管理员。因此,为防止这种情况发生,请在脚本顶部添加上述行。

如果您将来可能会编译您的脚本,最好使用这个来代替它以使其面向未来:

#SingleInstance Force

if !A_IsAdmin
    Run, % "*RunAs " (A_IsCompiled ? "" : A_AhkPath " ") Chr(34) A_ScriptFullPath Chr(34)

Chr(34) 返回字符 "

来源:https://www.autohotkey.com/boards/viewtopic.php?t=39647

【讨论】:

以上是关于如何为 AutoHotkey 脚本添加管理员权限?的主要内容,如果未能解决你的问题,请参考以下文章

如何为moodle权限添加权限?

如何为 Hibernate 查询集成用户权限/限制?

如何为数组字段中的指针添加权限指针?

如何在 AutoHotkey 中的 SendInput 命令之间添加延迟?

如何为 IBM 队列管理器/队列通道和队列中的所有用户设置权限

Django Rest Framework api如何为所有人添加身份验证权限