论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1609阅读
  • 0回复

[win7相关]更改win7欢迎界面 [复制链接]

上一主题 下一主题
离线quen2008
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-10-03 06:38:39
Windows 7:同属 NT 6.X 的 Windows 7 与 Windows Vista 在欢迎屏幕样式方面几乎没有什么区别,Windows 7 欢迎屏幕的背景依然是一幅完整的图片,这都与 Windows Vista 相同。

首先我们需要自己准备一张中意的欢迎屏幕背景图片,命名:

BackGroundDefault.JPG

保存至 Windows\system32\oobe\info\BackGrounds 文件夹中。顾名思义,BackGroundDefault.JPG 的分辨率设置为我们日常使用的桌面分辨率。另外,每一张 .JPG 图片的大小都不要超过 256KB,这是因为欢迎屏幕不允许使用 256KB 以上的图片以避免加载时拖慢启动速度。

接下来我们需要打开令欢迎屏幕使用自定义背景图片的 OEM 选项,打开注册表编辑器定位至:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Authentication\LogonUI\Background

新建 DWORD 值 OEMBackground 并将其设置为 1 即可。如果无权限修改注册表项,请自行提升权限。

这样一来,Windows 7 便以我们自定义的图片做为欢迎屏幕背景了。

——————————————
我自己根据这个写了一个小软件。
源代码:
CODE:

//made by SUNGJIRA



#include <windows.h>



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,

int iCmdShow)

{

char szTips[256];


wsprintf(szTips, "你应该选择一个图像大小为 %d * %d 的JPG文件。\n另外大小不要超过256kb,否则不会显示。", GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));

MessageBox(NULL, szTips, "提示", MB_OK | MB_ICONINFORMATION);





OPENFILENAME ofn;

static char szFile[256];

static char szFileTitle[256];

memset(&ofn, 0, sizeof(ofn));

ofn.lStructSize = sizeof(ofn);

ofn.lpstrFilter = "JPG图像\0*.jpg;\0\0";

ofn.nFilterIndex = 1;

ofn.lpstrFile = szFile;

ofn.nMaxFile = sizeof(szFile);



ofn.lpstrFileTitle = szFileTitle;

ofn.nMaxFileTitle = sizeof(szFileTitle);



ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER;





if (GetOpenFileName(&ofn))

{

char SysDir[256];

GetSystemDirectory(SysDir, 255);

strcat(SysDir, "\\oobe\\info\\backgrounds\\backgroundDefault.jpg");

CopyFile(szFile, SysDir, false);

HKEY hKey;

DWORD dwData = 1;

RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background", 0, KEY_ALL_ACCESS, &hKey);

RegSetValueEx(hKey, "OEMBackground", 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD));

MessageBox(NULL, "恭喜你,设置已经完成,按下WIN+L快速查看效果。", "提示", MB_OK | MB_ICONINFORMATION);

}

else MessageBox(NULL, "你没有选择文件,程序退出。", "提示", MB_OK | MB_ICONWARNING);

return 0;

}