Почему pyautogui не работает на VPS?

На VPS установлен скрипт который использует модуль pyautogui
При использовании функции pyautogui.locateCenterOnScreen выдаёт ошибку:
a = pyautogui.locateCenterOnScreen(iname, confidence =.7)
  File "C:\Python27\lib\site-packages\pyscreeze\__init__.py", line 295, in locateCenterOnScreen    
coords = locateOnScreen(image, **kwargs)
  File "C:\Python27\lib\site-packages\pyscreeze\__init__.py", line 265, in locateOnScreen
    screenshotIm = screenshot(region=None) # the locateAll() function must handle cropping to return accurate coordinates, so don't pass a region here.
  File "C:\Python27\lib\site-packages\pyscreeze\__init__.py", line 313, in _screenshot_win32
    im = ImageGrab.grab()
  File "C:\Python27\lib\site-packages\PIL\ImageGrab.py", line 41, in grab
    size, data = grabber()
IOError: screen grab failed

Если смотрю через RDP то никаких проблем. Как только закрываю RDP опять эта ошибка

Даже этот код не работает:
im1 = pyautogui.screenshot()
im1.save('my_screenshot.png')
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 2
Потому что когда закрывается сеанс RDP - винда прекращает обработку экрана - тоесть неоткуда сделать скриншот.
Вам нужно придумать другое решение для вашей задачи или обрабатывать отключения от RDP.

Предлагаю попробовать https://pywinauto.github.io/ который работает через опрос контролов в WinAPI - возможно он более подходит для задачи.
Ответ написан
vasily-v-ryabov
@vasily-v-ryabov
Python, UI Automation, pywinauto
Может вот это поможет: Remote Execution Guide из доков по pywinauto, но многие вещи универсальны для всех видов GUI automation. Если вкратце:

1. Можно настроить винду так, чтобы при отключении RDP активный рабочий стол сохранялся.
2. Можно перейти на VNC server.
3. Нельзя из-под сервиса скедулить GUI related задачи. Есть пример для Ansible и psexec, а также для встроенного Windows Scheduler.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 150 000 до 250 000 руб.
YLab Тольятти
от 90 000 до 150 000 руб.
Платформа НТИ Москва
от 130 000 до 180 000 руб.
22 апр. 2019, в 00:21
5000 руб./за проект
21 апр. 2019, в 21:02
1000 руб./за проект
21 апр. 2019, в 19:41
5000 руб./за проект