Прерывать активную заставку программно? - PullRequest
8 голосов
/ 14 мая 2009

ПРИЧИНА: Я работаю над приложением аварийного оповещения, которое должно отображать информацию на рабочем столе. Когда клиент получает предупреждение, он открывает окно. Если экранная заставка активна или монитор находится в режиме ожидания, предупреждение не будет отображаться. Мне интересно, можно ли разбудить компьютер с помощью какого-либо программного движения мыши или системного вызова, чтобы предупреждение было видно. Я думаю, что причина, по которой мышка движется или нажимает клавишу, состоит в аппаратном прерывании, поэтому это может быть невозможно.

В настоящее время проект реализуется на C #. Мне интересно услышать о решениях для Windows, MAC и Linux.

Это запрос клиента. Я учел следующее:

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

Я НЕ пытаюсь:

  • Запретить одновременную активацию заставки или режима энергосбережения.

1 Ответ

4 голосов
/ 14 мая 2009

Основываясь на том, что сказал fbonnet, использовать функции, показанные в статье kb на C #, сайт pinvoke.net - отличный ресурс. У них также есть статья о функции PostMessage здесь .

Таким образом, основным способом заставить ваш код работать может быть поиск функций, перечисленных в статье kb на сайте pinvoke.net . Или вы можете прочитать эта статья сделала это для вас.

...