Создание скриншота с помощью AutoIt _ScreenCapture_Capture на удаленном сервере не работает

У меня есть ферма виртуальных серверов Windows, и они автономно запускают различные настольные приложения, и я хочу иметь простой способ увидеть, что происходит на каждом сервере, без подключения через RDP. Поэтому я создал простой скрипт AutoIt, который автоматически запускается каждую минуту и ​​создает скриншот рабочего стола виртуальных серверов:

#NoTrayIcon
#include <WinAPI.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>

$LocalIP = _getLocalIP()
_ScreenCapture_Capture($CmdLine[1] & "\network\shared\screenshot_" & $LocalIP & ".jpg")

...

Проблема, с которой я столкнулся, заключается в том, что на снимке экрана отображается только рабочий стол с приложениями, когда я подключен к нему через RDP, как только я его закрою, снимок экрана станет черным, и будет виден только указатель мыши.

Можно ли как-то создать снимок экрана, даже если сеанс RDP закрыт? Это возможно?


person Andriusa    schedule 22.09.2011    source источник
comment
чтобы уточнить, сеансы пользователей активны, они вошли в систему.   -  person Andriusa    schedule 22.09.2011
comment
Мне кажется, вы делаете скриншоты рабочего стола для запланированных задач. Да на нем ничего.   -  person Hans Passant    schedule 22.09.2011
comment
Возможно, Windows не отображает те приложения, которые вы ожидаете увидеть, потому что знает, что никто не смотрит. (Да, Windows такая хитрая)   -  person Jos van Egmond    schedule 23.09.2011
comment
Наличие курсора можно объяснить в коде функции _ScreenCapture_Capture, он добавляется позже по возможно последним известным координатам.   -  person Jos van Egmond    schedule 23.09.2011


Ответы (1)


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

person Gal    schedule 25.09.2011