创build一个位于Windows任务栏中的程序,并在激活时停止启动屏幕保护程序

我不知道从哪里开始。 让我们从愚蠢的问题开始:

我应该使用什么语言? 什么是适合手头的任务?

其次,真正的:

有没有办法停止启动屏幕保护程序,改变光标位置? 如果没有,会改变光标位置甚至工作?

如果您传递ES_CONTINUOUS和ES_DISPLAY_REQUIRED标志, SetThreadExecutionState将防止屏幕保护程序进入或机器自动进入休眠状态。

我前一段时间写了一个应用程序,完全符合你的要求。 它作为系统托盘中的图标而不是任务栏运行,并使用全局消息挂钩来禁止WM_SYSCOMMAND/SC_SCREENSAVE通知到达任何应用程序。 如果该通知没有达到DefWindowProc()函数,屏幕保护程序将永远不会运行。

  1. 您的程序根本不需要在任务栏中可见。
  2. 如果可以禁用注册表中的屏幕保护程序,则根本不需要程序。
  3. 你想要做的事情可以通过发送MOUSE_MOVE事件到桌面窗口来实现。 如果你想使用C#(我现在使用的唯一一种语言),你可以看看这篇文章 ,但也许使用WinAPI的一个简单的C程序更适合这个任务。

.NET很容易让你把应用程序放在系统托盘中(在System.Windows.Forms.Controls中检出NotifyIcon对象)。

我相信您可以使用SetCursorPos( http://msdn.microsoft.com/en-us/library/ms648394 ( VS.85 ) .aspx )API调用来防止屏幕保护程序,只要确保您将它们设置为当前位置,所以你实际上不移动鼠标。