Coder969 Ответов: 1

Есть ли способ узнать, обновляется ли/изменяется ли экран windows программно


У нас есть требование проверить, что любой клиент использует приложение или оно находится в состоянии ожидания.

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

Я думаю о другом подходе-получить скриншоты в разных интервалах и сравнить. Если оба изображения совпадают, то предположим, что он находится в режиме ожидания или же происходит какая-то пользовательская активность.

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

Что я уже пробовал:

Поискал в интернете и на веб-сайте microsoft, но не смог найти информацию

Richard MacCutchan

Что именно вы пытаетесь измерить? А если это ваше приложение, то почему у вас нет доступа к исходному коду? И наконец, как вы собираетесь собирать информацию с компьютера клиента, если у вас нет полного доступа к нему?

1 Ответов

Рейтинг:
0

Garth J Lancaster

Я бы начал копаться в таких вещах FreeRDP · GitHub[^ и посмотрите, как они это делают .. Очевидно, что передача полных экранов может быть проблематичной, поэтому возможность идентифицировать дифференциальные области может быть методом.

Раньше там было много информации и кода для VNC, а также, возможно, стоило бы порыскать в сети

Например, вы можете в конечном итоге написать кишки на C++, так как iirc было проще получить доступ к экранным/настольным API Win32, а не использовать Interop/P-Invoke из C#


Coder969

Я проверил Windows API для экрана, но не смог найти никакой информации для событий отображения. Что вы подразумеваете под "передачей на весь экран"?

В моем случае мне не нужны никакие данные экрана. Мне просто нужно событие, чтобы экран был обновлен/обновлен