哈尔滨网页网站制作,网页设计好的公司,网上服装设计培训班,公司英文网站多少钱1.注册表
Windows注册表是Windows操作系统中的一个关键组件#xff0c;用于存储系统和应用程序的配置信息。注册表是一个层次结构的数据库#xff0c;它由多个键#xff08;key#xff09;和值#xff08;value#xff09;组成。
Windows系统注册表是一个核心数据库用于存储系统和应用程序的配置信息。注册表是一个层次结构的数据库它由多个键key和值value组成。
Windows系统注册表是一个核心数据库用于存储各种参数直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行。注册表包含软件、硬件和用户首选项的设置这些设置在Windows操作系统的启动和运行过程中起着核心作用。
2.如何打开注册表 在任务栏上的搜索框中键入regedit然后选择注册表编辑器 (桌面应用) 结果。 右键单击开始 然后选择运行。 在打开框中键入 regedit然后选择确定。WinR
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为布尔型 1324 改变桌面图标水平和垂直间距uParam为间距值(像素)lpvParam为long型 15 设置屏保等待时间SystemParametersInfo(15, 秒数, P, 1)lpvParam为long型 20 设置桌面背景墙纸SystemParametersInfo(20, True, 图片路径, 1) 93 开关鼠标轨迹SystemParametersInfo(93, 数值, P, 1)uParam为False则关闭 97 开关CtrlAltDel窗口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.EXEC:\Windows\system32\ssText3d.scr 变幻线 SCRNSAVE.EXEC:\Windows\system32\Mystify.scr 彩带 SCRNSAVE.EXEC:\Windows\system32\Ribbons.scr 空白 SCRNSAVE.EXEC:\Windows\system32\scrnsave.scr 气泡 SCRNSAVE.EXEC:\Windows\system32\Bubbles.scr 照片 SCRNSAVE.EXEC:\Windows\system32\PhotoScreensaver.scr */ bool openScreenSaver() { bool bIsScrSaveEnable FALSE; //根键、子键名称和到子键的句柄 HKEY hKey;//打开指定子键 DWORD dwDispositionREG_OPENED_EXISTING_KEY; //如果不存在就创建 LONG lRetRegCreateKeyEx(HKEY_CURRENT_USER,TEXT(Control Panel\\Desktop),0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,hKey,dwDisposition); if(lRet!ERROR_SUCCESS){ qDebug() RegCreateKeyEx error; return FALSE; } // RegSetValueExW( // In HKEY hKey, // In_opt LPCWSTR lpValueName, // Reserved DWORD Reserved, // In DWORD dwType, // _In_reads_bytes_opt_(cbData) CONST BYTE* lpData, // In DWORD cbData // ); LPCTSTR lpszValue _T(C:\\Windows\\system32\\PhotoScreensaver.scr); lRetRegSetValueEx(hKey,TEXT(SCRNSAVE.EXE), 0, REG_SZ, (CONST BYTE *)lpszValue, (_tcslen(lpszValue) 1) * sizeof(TCHAR)); bIsScrSaveEnable (lRetERROR_SUCCESS); //关闭子键句柄 RegCloseKey(hKey); hKey NULL; return bIsScrSaveEnable; } 3.3 删除注册项 // 关闭屏保 // RegDeleteKey 删除项 // RegDeleteValue 删除值 // SCRNSAVE.EXE 是值 bool closeScreenSaver() { bool bIsScrSaveEnable FALSE; HKEY hKeySreenSaver NULL; long lReturn NULL; long lScreenSaver NULL; // RegOpenKeyExW( // In HKEY hKey, // In_opt LPCWSTR lpSubKey, // In_opt DWORD ulOptions, // In REGSAM samDesired, // Out PHKEY phkResult // ); lReturn RegOpenKeyEx(HKEY_CURRENT_USER,TEXT(Control Panel\\Desktop),0,KEY_ALL_ACCESS,hKeySreenSaver); if(lReturn ERROR_SUCCESS) { // RegDeleteValueW( // In HKEY hKey, // In_opt LPCWSTR lpValueName // ); lScreenSaver RegDeleteValue(hKeySreenSaver,TEXT(SCRNSAVE.EXE)); if(lScreenSaver ERROR_SUCCESS){ qDebug() Screen Saver closed; bIsScrSaveEnable TRUE; } else{ qDebug() Screen Saver is Not closed lScreenSaver TEXT(SCRNSAVE.EXE); bIsScrSaveEnable FALSE; } } RegCloseKey(hKeySreenSaver); hKeySreenSaver NULL; return bIsScrSaveEnable; } 问题怎么修改图片路径呢
其他应用 // 设置触摸键盘模式 void TouchKeyboardManager::setTouchKeyboardMode(bool enable) { if(enable){ CloseKeyBoard(); } DWORD dwValue enable?1:0; // TODO: 在此添加控件通知处理程序代码 HKEY hKey NULL; LONG lRet ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT(Software\\Microsoft\\TabletTip\\1.7), 0, KEY_ALL_ACCESS, hKey); if (lRet ERROR_SUCCESS) { ::RegSetValueEx(hKey, TEXT(EnableDesktopModeAutoInvoke), 0, REG_DWORD,(CONST BYTE*)dwValue, sizeof(DWORD)); ::RegCloseKey(hKey); HWND window ::FindWindowEx(nullptr, nullptr, WINDOW_CLASS, nullptr); if (::IsWindow(window)) { HRESULT hr ::SendMessage(window, WM_SETTINGCHANGE, 0, 0);//通知TabTip,大概需要1ms if (hr ! S_OK) { qDebug() ::SendMessage(window, WM_SETTINGCHANGE, 0, 0) ! S_OK; ::SendMessage(window, WM_SETTINGCHANGE, 0, 0);//再次通知TabTip } } // SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0); //广播通知系统,大概需要800ms太久了 } } 4.项目应用需注意的问题
修改注册表需要谨慎因为错误的修改可能会导致系统不稳定或无法启动。在修改注册表之前建议备份注册表创建还原点并确保了解如何在发生问题时还原注册表。此外使用第三方注册表清理实用程序时需要格外小心因为这些工具可能会导致严重问题如系统崩溃或数据丢失。
如何在 Windows 中备份和还原注册表 - Microsoft 支持