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;
}