系统的主题文件和主题背景是放在/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,也就是全屏显示的图片。