无法使用Python Pyautogui以管理员身份打开CMD

时间:2019-02-05 17:33:21

标签: python python-3.x pyautogui

我正在尝试使用Python 3.7 pyautogui以管理员身份打开CMD。我能够导航到开始菜单图标,键入“ cmd”,然后按ctrl + shift + enter以在管理模式下打开cmd。

然后弹出一条消息,提示是或否,是否以管理员身份打开。当我使用pyautogui.press('left')时,它没有按左按钮。

try:
    import pyautogui
    import time
    pyautogui.FAILSAFE = True
    pyautogui.PAUSE = 0.5
    mouseMovementDuration = 2 #every mouse movement will take 2 secs
    intervalBetweenKeyPress = 0.5
    def runCMDasAdmin():
        x, y = pyautogui.locateCenterOnScreen(r'C:\\Users\\Saru\\Desktop\\PyAutoGUI\\images\\startmenu.png')
        pyautogui.click(x=x, y=y,button='left',duration=mouseMovementDuration) 
        pyautogui.typewrite('cmd', interval=intervalBetweenKeyPress)
        pyautogui.hotkey('ctrl', 'shift', 'enter')
        pyautogui.press(['left','enter'],interval=intervalBetweenKeyPress)

    print(pyautogui.size()) #It will give you the size of the screen
    pyautogui.moveTo(x=1919,y=1079,duration=mouseMovementDuration)
    pyautogui.moveTo(x=1,y=1,duration=mouseMovementDuration)
    runCMDasAdmin()
except Exception as e:
    print("Exception Raised------>",str(e))

我想使用pyautogui以管理员身份打开cmd。请帮忙。

2 个答案:

答案 0 :(得分:0)

您可以使用批处理脚本以Admin身份打开CMD。 下面是代码。

@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

答案 1 :(得分:0)

由于用户访问控制(UAC)提示在除任何自动化/代码组件的控制之外的单独层上起作用,以确保用户安全。因此,唯一的解决方案是完全禁用UAC提示。禁用UAC提示的过程-在“开始”菜单上,键入UAC,选择“用户访问控制”设置,将其设置为“从不通知”。