如何检测墙纸何时已更改(Windows XP或更高版本)?
我已经知道了如何改变桌面壁纸(互联网上有几十个例子) 有一件事我仍然没有意识到:当壁纸发生变化时,我该如何检测?(比如通过显示控制面板或其他程序更改它。)这里是一个用C#检索墙纸的示例。您需要添加的只是一些额外的代码来存储最后一张壁纸,并检查它是否不同如何检测墙纸何时已更改(Windows XP或更高版本)?,windows,windows-7,wallpaper,desktop-wallpaper,Windows,Windows 7,Wallpaper,Desktop Wallpaper,我已经知道了如何改变桌面壁纸(互联网上有几十个例子) 有一件事我仍然没有意识到:当壁纸发生变化时,我该如何检测?(比如通过显示控制面板或其他程序更改它。)这里是一个用C#检索墙纸的示例。您需要添加的只是一些额外的代码来存储最后一张壁纸,并检查它是否不同 RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false); string wallpapername = wallpaper.G
RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false);
string wallpapername = wallpaper.GetValue("wallpaper").ToString();
wallpaper.Close();
如果使用非.net语言编写某些内容,可以使用Win32 APIRegNotifyChangeKeyValue
函数检查此值是否已更改:
HKEY\U当前用户\控制面板\桌面\壁纸
为.NET中的WM_SETTINGCHANGE、SystemEvents.UserPreferenceChanged添加消息处理程序。检查壁纸是否仍然相同。什么编程语言/环境。网?MFC?Win32?这是WM\U设置更改,但是是的,我想说这是一个很好的通知方式。