#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
будет.