Как я могу использовать pywinauto для выполнения операции щелчка, когда пользователь не вошел в систему?

#python-3.x #user-interface #remote-desktop #pywinauto

#python-3.x #пользовательский интерфейс #удаленный рабочий стол #pywinauto

Вопрос:

В настоящее время я использую pywinauto для автоматического обновления файла power BI через планировщик задач Windows. скрипт работает хорошо, и он хорошо выполняет свою работу, если я вошел в систему. в системе. если я просто позволю сценарию запускаться с помощью планировщика, он не сможет обнаружить активный рабочий стол для перемещения курсора мыши.

В настоящее время я получаю сообщение об ошибке «Для перемещения курсора мыши не требуется активный рабочий стол». win.Home.click_input() это вызывает проблему при запуске на удаленном компьютере и не может выполнить операцию щелчка.

Я использую следующий скрипт.

 import time
import os
import sys
import psutil
from pywinauto import Application

os.system('start "" "'   Filepath   '"')

# Connect pywinauto
print("Identifying Power BI window")
app = Application(backend = 'uia').connect(path = PROCNAME)
win = app.window(title_re = '.*Power BI Desktop')
        
time.sleep(3)
win.wait("enabled", timeout = 300)
win.Save.wait("enabled", timeout = 300)
win.set_focus()
win.Home.click_input()
win.Save.wait("enabled", timeout = 300)
win.wait("enabled", timeout = 300)
    
# Refresh
print("Refreshing Started"
win.Refresh.click_input()
time.sleep(3)
win.wait("enabled", timeout = 300)

#Save
win.type_keys("^S")
time.sleep(3)
win.wait("enabled", timeout = 300)
 

Есть ли какое-либо возможное решение для этого? Спасибо.

Ответ №1:

Класс click_input() необходим для входа в ОС.

Ответ №2:

Windows не позволяет использовать «клавиатуру», когда экран заблокирован. Это вопрос безопасности.

Возможно, вам потребуется найти точную кнопку или поле, которое вы хотите активировать, а затем использовать click() , а не click_input() использовать.

Это означает send_keys или type_keys не будет работать, но set_text будет.