当我将鼠标放在屏幕的右上角时,我正在尝试编写一个简单的应用程序来激活我的屏幕保护程序。我已经找到了从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);
}
答案 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"部分下)
希望这有助于某人。