2009-05-21 3 views
2

Я не знаю, с чего начать. Начнем с глупых вопросов:Создайте программу, которая находится на панели задач Windows, и, когда она активирована, останавливает Заставка от запуска

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

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

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

ответ

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

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

+0

Вы правы. –

0

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

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

7

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

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^