WM6.5下如何设置桌面背景

思善 2010-05-20 02:53:17
我想在程序中设置调用WM系统的设置桌面背景的界面,有谁知道怎么做吗?
...全文
741 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CdingStar 2010-05-23
  • 打赏
  • 举报
回复
可以通过不同的方式来监控系统发送的变化,主要也就是注册表和文件,都可以通过不同的软件来监控到的。然后模拟系统变化的过程,最后通知桌面更新。
CdingStar 2010-05-23
  • 打赏
  • 举报
回复
测试了一下。可以通过修改注册表,Software\\Microsoft\\Today,UseStartImage=1 (用魔乐的注册表工具来导出比较一下就知道了)
然后Wall=你的Wallpaper图片文件。还需要设置DPI。

然后修改 SYSTEM\\GWE\\Display 里面的LogicalPixelsX


\\Windows\\stwater.* 之类的文件也得删除掉,把这个文件复制到Windows下:\\Windows\\stwater_%d_%d.jpg

最后发消息通知系统改好了:

::SendMessage(HWND_BROADCAST,
WM_WININICHANGE,
0xF2,
0);
::SendMessage(HWND_BROADCAST,
WM_SETTINGCHANGE,
0,
(LPARAM)(L"Environment"));

最好执行前清除一下windows下相关的文件 tdywater* 和 stwater*。
思善 2010-05-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nbcool 的回复:]

有是有方法,但是不标准。
[/Quote]

我就是想找这个不标准的方法,呵~,你知道吗?
载舟之水 2010-05-20
  • 打赏
  • 举报
回复
有是有方法,但是不标准。
思善 2010-05-20
  • 打赏
  • 举报
回复
网上有说用SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0);方法可以改,但这个方法在WM6.5上不适用了,后来有人说有另外的方法,但我没找到,有人知道吗?
思善 2010-05-20
  • 打赏
  • 举报
回复
谢谢LS,不过不是我想要的,我想的是系统里面的:设为“今日背景”这个接口
载舟之水 2010-05-20
  • 打赏
  • 举报
回复
SHELLEXECUTEINFO execInf;

ZeroMemory (&execInf, sizeof (execInf));

execInf.cbSize = sizeof(execInf);
execInf.fMask = SEE_MASK_NOCLOSEPROCESS;
execInf.lpFile = _T("\\Windows\\ctlpnl.exe");
execInf.nShow = SW_SHOWNORMAL;
execInf.lpVerb = TEXT("open");
execInf.lpParameters = _T("cplmain.cpl,13");

ShellExecuteEx (&execInf);

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧