我已經想出瞭如何改變桌面壁紙(在互聯網上有幾十個例子)。如何檢測牆紙改變時(Windows XP或更高版本)?
有一件事仍然沒有回答我:如何檢測壁紙發生了什麼變化? (通過顯示控制面板或其他程序更改它。)
我已經想出瞭如何改變桌面壁紙(在互聯網上有幾十個例子)。如何檢測牆紙改變時(Windows XP或更高版本)?
有一件事仍然沒有回答我:如何檢測壁紙發生了什麼變化? (通過顯示控制面板或其他程序更改它。)
以下是C#中檢索壁紙的示例。所有你需要添加的是一些額外的代碼來存儲最後的壁紙,並檢查它是否不同。
RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false);
string wallpapername = wallpaper.GetValue("wallpaper").ToString();
wallpaper.Close();
如果你在,你可以使用Win32 API RegNotifyChangeKeyValue
功能檢查,看看是否這個值已經改變了非.NET語言寫的東西:
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
添加一個消息處理WM_SETTINGCHANGE, .NET中的SystemEvents.UserPreferenceChanged。檢查壁紙是否仍然相同。
它是'WM_SETTINGCHANGE',但是,我會說這是一個很好的通知方式。 – 2010-01-06 18:36:12
什麼編程語言/環境? 。淨? MFC? Win32的? – 2010-01-06 16:47:11