使桌面的一角激活屏幕保护程序

时间:2011-12-24 16:05:29

标签: c# windows cursor desktop screensaver

当我将鼠标放在屏幕的右上角时,我正在尝试编写一个简单的应用程序来激活我的屏幕保护程序。我已经找到了从C#控制屏幕保护程序的答案,但是我无法确定如何对鼠标位置进行“热角”类型检查。这是我唯一坚持的部分,任何帮助都会受到赞赏。

这将激活屏幕保护程序

[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
    private static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int  lParam);

private const int SC_SCREENSAVE = 0xF140;
private const int WM_SYSCOMMAND = 0x0112;

public static void SetScreenSaverRunning()
{
  SendMessage(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);
}

3 个答案:

答案 0 :(得分:4)

您可以使用System.Windows.Form.Screen类来获取当前分辨率(请查看this answer)。然后使用Cursor.Position.Property来确定光标当前所在的位置(即它是否在应该激活它的某个预定义矩形的边界内)。

答案 1 :(得分:1)

我做了完全相同的事情,只是它在左上角加载。我所做的只是将表单大小设置为1px,没有边框,只需在鼠标停留在窗体上一秒钟后激活屏幕保护程序。这样做需要您找到将表单保存在所有内容之上的所有方法。

另一种选择是鼠标挂钩,只是观看(0,0)鼠标位置,或右上角 - (0,screen.width)

答案 2 :(得分:0)

您也可以尝试Lucian Wischik的ScrHots。它是免费软件,完全符合您的需求,并且还具有热点功能,从不激活屏幕保护程序"能力。可以对所有四个角进行编程以执行任一功能。我已经使用过这个多年了,而且效果很好。

http://www.wischik.com/scr/savers.html(ScrHots3," Utilities"部分下)

希望这有助于某人。