Невозможно открыть CMD в качестве администратора с помощью Python Pyautogui - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь открыть CMD с правами администратора, используя Python 3.7 pyautogui.Я могу перейти к значку меню «Пуск», набрать «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))

Я хочу открыть cmd как администратор, используя pyautogui.Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Поскольку приглашение User Access Control (UAC) работает на отдельном уровне, который не контролируется любым компонентом автоматизации / кода для обеспечения безопасности пользователя.Поэтому единственное решение - полностью отключить запросы UAC.Процедура отключения приглашений UAC. В меню «Пуск» введите «UAC», выберите «Настройки контроля доступа пользователя» и установите, чтобы оно никогда не уведомляло.

0 голосов
/ 05 февраля 2019

Вы можете использовать пакетный скрипт, чтобы открыть 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"
:--------------------------------------
...