Windows注册表是Windows操作系统中的一个关键组件,用于存储系统和应用程序的配置信息。注册表是一个层次结构的数据库,它由多个键(key)和值(value)组成。
Windows系统注册表是一个核心数据库,用于存储各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行。注册表包含软件、硬件和用户首选项的设置,这些设置在Windows操作系统的启动和运行过程中起着核心作用。
2.如何打开注册表在任务栏上的搜索框中,键入regedit,然后选择"注册表编辑器 (桌面应用) 结果。
右键单击"开始", 然后选择"运行"。 在"打开:"框中键入 regedit,然后选择"确定"。(Win+R)
3. 增加、删除、修改、查询注册表项3.1 系统函数SystemParametersInfo 修改、查询
应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。
我们先来看看SystemParametersInfo函数的定义和参数:
SystemParametersInfoW(
In UINT uiAction,
In UINT uiParam,
Pre_maybenull Post_valid PVOID pvParam,
In UINT fWinIni);
参数:
uAction Long,指定要设置的参数。参考uAction常数表
uParam Long,参考uAction常数表
lpvParam Any,按引用调用的Integer、Long和数据结构。
fuWinIni 这个参数规定了在设置系统参数的时候,是否应更新用户设置参数
6 设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型
17 开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型
13,24 改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型
15 设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型
20 设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)
93 开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭
97 开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔型
// 先获取是否启用屏幕保护
SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &m_bScreenSaveActive, 0);
if (m_bScreenSaveActive)
{
// 阻止屏保
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, 0);
}
if (m_bScreenSaveActive)
{
// 取消阻止屏保
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, NULL, 0);
}
// 屏保设置
// 先获取是否启用屏幕保护
SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &m_bScreenSaveActive, 0);
3.2 创建注册项、修改
// 开启屏保
/****
SCRNSAVE.EXE 有这个字段,代表开了,没有,代表关闭
无 找不到这个字段SCRNSAVE.EXE
3D文字 SCRNSAVE.EXE:C:Windowssystem32ssText3d.scr
变幻线 SCRNSAVE.EXE:C:Windowssystem32Mystify.scr
彩带 SCRNSAVE.EXE:C:Windowssystem32Ribbons.scr
空白 SCRNSAVE.EXE:C:Windowssystem32scrnsave.scr
气泡 SCRNSAVE.EXE:C:Windowssystem32Bubbles.scr
照片 SCRNSAVE.EXE:C:Windowssystem32PhotoScreensaver.scr
*/
bool openScreenSaver()
{
bool bIsScrSaveEnable = FALSE;
//根键、子键名称和到子键的句柄
HKEY hKey;//打开指定子键
DWORD dwDisposition=REG_OPENED_EXISTING_KEY;
//如果不存在就创建
LONG lRet=RegCreateKeyEx(HKEY_CURRENT_USER,TEXT("Control Panel\Desktop"),0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition);
if(lRet!=ERROR_SUCCESS){
qDebug()