tekynet 阅读(983) 评论(3)

刚作smartphone程序的时候有个功能就是设置一张图片为sp桌面背景,这个功能很长时间都没有完全实现,设置桌面有时成功,有时候则没有反应,几经辗转,最近还是ningxu告诉我是一个参数错了,才有了眉目,哈,发挥vckbase精神,分享之.

系统的主题文件和主题背景是放在\Storage\Application Data\Home下面的,所以习惯的,先把图片拷到这个文件夹下面,当然你不拷也可以。

1. 通过更改注册表设置图片路径,把HKEY_CURRENT_USER\\ControlPanel\\Home下的BgImage健的值设置为图片的路径.

CF1里面没有提供直接操作注册表的类,我们只有转调用api了,用CF2的就幸福了,直接用Registry 类实现吧

......
RegCreateKeyEx(HKEY_CURRENT_USER, L"\\ControlPanel\\Home", 0, NULL, 0, 0, NULL, &hKey, NULL);

RegSetValueEx(hKey, L"BgImage", 0, REG_SZ,(BYTE*)path, len);
......

2 .注册表修改完以后,要通知系统刷新一下,如下就可以了

 [System.Runtime.InteropServices.DllImport("Coredll")]
 private static extern IntPtr GetDesktopWindow();

 [System.Runtime.InteropServices.DllImport("Coredll")]
  private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

 IntPtr hWindow = GetDesktopWindow();
 SendMessage((IntPtr)hWindow, 0x001A, 0, 0);

以上就完成了设置桌面背景的功能了。

上面是只是修改了sp主题风格的背景图片,并不改变现在使用的主题,如果想换个主题来使桌面图片更好看,也有办法哟,

更改注册表HKEY_CURRENT_USER\\ControlPanel\\Home下Scheme健值为主题文件的路径然后刷新一下就可以了。

其他的背景图片参考
路径:HKEY_LOCAL_MACHONE\SOFTWARE\Microsoft\Shell\Rai\

各项对应的背景图片:

:MSScut\BKBitmapFile
 快速拨号
 
:ErrorBox\BKBitmapFile
 错误信息
 
:CallAlert\BKBitmapFile
 来电时的背景
 
:InformationBox\BKBitmapFile 
 信息
 
:MSCdial\BKBitmapFile  
 输入号码 
 
:MSClog\BKBitmapFile  
 通话记录
 
:MSCONTACTS\BKBitmapFile
 联系人
 
:MSCPROG\BKBitmapFile
 正在拨号
 
:MSStart\BKBitmapFile 
 开始菜单
 
:MSSYNCAPP\BKBitmapFile
 ActiveSync背景
 
:QuestionBox\BKBitmapFile 
 确认
 
:VolDlg\BKBitmapFile 
 耳机音量
 
......

  如果在对应的目录下,同时有BannerImage和BKBitmapFile,那么,前者图片大小为176×20,后者为176×160。如果只有BKBitmapFile,图片大小为176×180。当然,如果你觉得麻烦,可以把BannerImage删除,直接把BKBitmapFile设置为176×180就可以了。

开关机画面

路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Splash Screen

开机(按顺序显示):
MSBitmap
CarrierBitmap

关机(按顺序显示):
MSShutdownBitmap
CarrierShutdownBitmap

开关机图片大小为176×220,也就是全屏显示的图片。

 

 

 


 


评论列表
qianli
re: 设置smartphone桌面背景图片
偶问个问题。偶昨天晚上做了个简单的首页主题。样子倒还可以。其他一切正常。
就是系统默认的背景图片有点小(把图片打开后有个“做为主屏幕背景图片”的选项。然后就让你选择裁切区域。),不过比例什么了都是定好。我想把这个比例修改一下。
那样的话主屏幕的图片才会大一点。。。。。
谁知道在哪里改啊。。。。谢谢了。。。。 
qq:105791156
徐亚群
re: 设置smartphone桌面背景图片
我很同意
徐亚群
re: 设置smartphone桌面背景图片
我很同意

发表评论
切换编辑模式