2011-12-24 72 views
4

我想寫一個簡單的應用程序來激活我的屏幕保護程序,當鼠標在屏幕的右上角。我已經找到了一個控制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

你可能也會發布一些你如何運行屏幕保護程序? – gideon 2011-12-24 17:23:05

+0

嗨吉迪恩,編輯我的原始問題,包括激活屏幕保護程序 – CybrHwk 2011-12-24 18:56:38

+0

真棒! =)謝謝。 – gideon 2011-12-25 02:06:51

回答

1

我做了完全相同的事情,只有它加載在左上角。我所做的只是使表單大小爲1px,沒有邊框,並且只需在鼠標停留在表單上一秒時激活屏幕保護程序。這樣做需要你找到所有的方法來保持表格的一切。

另一種選擇是鼠標鉤子,只是看的(0,0)鼠標位置,或右上方 - (0,screen.width)

+0

我喜歡左上角的方法。它簡化了一些事情。 – 2011-12-24 17:26:43

+0

爲了低級別的鼠標掛鉤,現在正在工作,謝謝你的建議。幾乎所有的基本工作,屏幕保護程序現在激活時,鼠標是在右上角,只需要添加代碼,以便能夠改變哪個角落是「熱門角落」 – CybrHwk 2011-12-24 18:50:32

+0

每當屏幕保護程序轉動時,你的進程的內存是否增加上?當我剛剛嘗試鼠標鉤時,我記得內存使用越來越大,這就是爲什麼我保留1x1格式。 – makman99 2011-12-24 23:21:21

0

您也可以嘗試從盧西恩Wischik ScrHots。它是免費軟件,完全符合您的需求,並且具有「永不激活屏幕保護程序」功能的熱門功能。所有四個角落都可以編程來執行任一功能。我已經使用了這個多年,而且效果很好。

http://www.wischik.com/scr/savers.html(ScrHots3,在 「工具」 部分)

希望這可以幫助別人。

相關問題