Anaconda 自动热键以管理员身份运行程序不工作

Anaconda 自动热键以管理员身份运行程序不工作,anaconda,autohotkey,Anaconda,Autohotkey,我创建了一个自动热键脚本来打开Anaconda命令提示符。这样,当我按Ctrl+Numpad4时,就会打开一条蟒蛇提示。如果我按Ctrl+Shift+Numpad4,anaconda提示符将作为管理员打开。我遵循自动热键论坛中的代码说明;但这似乎不起作用。这是我的密码: ^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anac

我创建了一个自动热键脚本来打开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

numpad left和4仅适用于打开或关闭数字锁的两种情况

我该怎么办

另外,还有一个小问题,那就是anaconda与我的自动热键脚本在同一个目录中打开。我想它打开在一个预先指定的目录。我可以从自动热键脚本本身执行此操作吗。通过创建批处理文件或添加任何其他代码段?

有几件事:

  • 如果你想让ahk以管理员的身份为你运行一些东西,你需要确保你在运行它时有ahk请求提升烫发。这可以通过将“runas”部分替换为“Run*runas”来实现,例如,如果我试图提升一个我通常会调用的cmd
  • 我可以通过打电话来提升它

    Run *runas cmd
    
    因此,此时的脚本看起来像smthng

    ^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,则可以使用

    SetWorkingDir, C:\Users
    
    注意:使用提升时,工作目录可能会更改回用户的默认目录(对于管理员:C:\WINDOWS\system32)。要解决此问题,您可能需要将特定于您尝试运行的程序(在本例中为Anaconda)的其他参数传递到run命令本身。我发现这可能会用另一种方法解决你的蟒蛇问题

    总之,您的脚本如下所示:

    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"
    

    admin方法有效。但是,即使将current dir设置为特定文件夹,C:\Users\{My name}文件夹中的正常(未提升)提示也只会打开,而不考虑目录集。但是,我创建了一个临时解决方案,使用脚本在我的目录中复制快捷方式,并将快捷方式的默认路径设置为我想要使用的目录。
    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"