Создайте программу, которая находится на панели задач Windows и, после активации, останавливает заставку - PullRequest
2 голосов
/ 22 мая 2009

Я не знаю, с чего начать. Начнем с глупых вопросов:

Какой язык мне использовать для этого? Что подходит для поставленной задачи?

Далее, настоящие:

Есть ли способ остановить запуск заставки, кроме изменения положения курсора? Если нет, будет ли работать изменение положения курсора?

Ответы [ 4 ]

7 голосов
/ 22 мая 2009

SetThreadExecutionState предотвратит включение заставки или автоматический переход компьютера в спящий режим, если вы передадите флаги ES_CONTINUOUS и ES_DISPLAY_REQUIRED.

2 голосов
/ 17 июня 2009

Недавно я написал приложение, которое делает именно то, что вы просите. Он запускается в виде значка в системном трее, а не на панели задач, и использует глобальный хук сообщений, чтобы запретить уведомление WM_SYSCOMMAND/SC_SCREENSAVE о достижении любых приложений. Если это уведомление не достигает функции DefWindowProc (), экранная заставка никогда не запустится.

1 голос
/ 22 мая 2009
  1. Ваша программа вообще не должна быть видимой на панели задач.
  2. Вам даже не нужна программа, если вы можете отключить заставку в реестре.
  3. То, что вы хотите сделать, может возможно быть достигнуто путем отправки события MOUSE_MOVE в окно рабочего стола. Если вы хотите использовать C # (единственный язык, которым я сейчас владею), вы можете посмотреть эту статью , но, возможно, простая программа на C, использующая WinAPI, лучше подходит для этой задачи.
0 голосов
/ 22 мая 2009

.NET легко позволит вам поместить приложение в системный трей (извлеките объект NotifyIcon в System.Windows.Forms.Controls).

Я полагаю, что вы можете использовать вызов API SetCursorPos (http://msdn.microsoft.com/en-us/library/ms648394(VS.85).aspx)) для предотвращения заставки, просто убедитесь, что вы установили их в текущее местоположение, чтобы фактически не перемещать мышь.

...