【问题标题】:Autohotkey run program as admin not workingAutohotkey以管理员身份运行程序不起作用
【发布时间】:2020-10-11 15:05:22
【问题描述】:

我创建了一个 Autohotkey 脚本来打开 Anaconda 命令提示符。这样当我按下Ctrl+Numpad4 时,我会打开一个蟒蛇提示。如果我按Ctrl+Shift+Numpad4,anaconda 提示将以管理员身份打开。我按照自动热键论坛中的代码说明进行操作;但这似乎不起作用。这是我的代码:

^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"

^+NumpadLeft::
RunAs, Administrator, #Mypassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs

^+Numpad4::
RunAs, Administrator, #MyPassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs

小键盘左侧和 4 仅用于涵盖打开或关闭数字锁定的两种可能情况。

我该怎么办?

另外,还有一个小问题,即 anaconda 在与我的自动热键脚本相同的目录中打开。我希望它在预先指定的目录中打开。我可以从自动热键脚本本身执行此操作吗?通过创建批处理文件或添加任何额外的 sn-p?

【问题讨论】:

    标签: anaconda autohotkey


    【解决方案1】:

    一些事情:

    1. 如果您希望 ahk 以管理员身份为您运行某些东西,您需要确保 AHK 在运行时请求提升权限。这可以通过将“runas”部分替换为“Run *runas”来实现。例如,如果我试图提升一个我通常会调用的 cmd
    run cmd
    

    我可以通过调用来提升它

    Run *runas cmd
    

    所以此时的脚本看起来很像

    ^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    ^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    
    ^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    
    ^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    

    要解决您的第二个问题,您可以通过changing your working directory 更改脚本运行的目录。 例如,如果您想将工作目录更改为 C:\Users,您可以使用

    SetWorkingDir, C:\Users
    

    注意:使用提升时,工作目录可能会变回用户的默认值(对于管理员:C:\WINDOWS\system32)。要解决此问题,您可能需要将其他参数传递给您的运行命令本身,这些参数将特定于您尝试运行的程序(在本例中为 Anaconda)。我发现 this question 可以用不同的方法解决您的 Anaconda 问题。

    因此,总而言之,您的脚本将如下所示:

    SetWorkingDir, C:\Users ;replace this directory with the one that you actually want to use
    
    ^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    
    ^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    
    ^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    
    ^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
    

    【讨论】:

    • 管理方法有效。但是,即使将当前目录设置为特定文件夹,无论目录设置如何,都会在 C:\Users\{My name} 文件夹中打开正常(未提升)提示。
    • 但是我创建了一个临时解决方案,方法是使用脚本在我的目录中复制快捷方式,并将快捷方式的默认路径设置为我想要使用的目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2011-09-24
    • 2010-12-19
    相关资源
    最近更新 更多