当前位置: 首页 > wzjs >正文

网站环境配宁夏建设厅网站查证

网站环境配,宁夏建设厅网站查证,武夷山景区网站建设优点,wordpress伪静态 pageQt的window注册表读写以及删除 1. 使用 QSettings(Qt推荐方式)基本操作关键点限制 2. 调用Windows原生API示例:创建/读取键值常用API注意事项 3. 高级场景(1) 递归删除键(2) 注册表权限修改 4. 安全性建议总结其他QT文章推荐 在Qt中操作Windo…

Qt的window注册表读写以及删除

  • 1. 使用 `QSettings`(Qt推荐方式)
    • 基本操作
    • 关键点
    • 限制
  • 2. 调用Windows原生API
    • 示例:创建/读取键值
    • 常用API
    • 注意事项
  • 3. 高级场景
    • (1) 递归删除键
    • (2) 注册表权限修改
  • 4. 安全性建议
  • 总结
  • 其他QT文章推荐

在Qt中操作Windows注册表通常需要通过Windows原生API(如 RegOpenKeyExRegSetValueEx等)或Qt的封装工具(如 QSettings)。以下是详细的方法和示例:


1. 使用 QSettings(Qt推荐方式)

QSettings 是Qt提供的跨平台配置管理类,在Windows下会自动操作注册表,无需直接调用API。

基本操作

#include <QSettings>
#include <QDebug>// 写入注册表(HKEY_CURRENT_USER\Software\MyApp)
QSettings settings("HKEY_CURRENT_USER\\Software\\MyApp", QSettings::NativeFormat);
settings.setValue("Version", "1.0");
settings.setValue("Settings/Theme", "Dark");// 读取注册表
QString version = settings.value("Version").toString();
QString theme = settings.value("Settings/Theme").toString();
qDebug() << "Version:" << version << "Theme:" << theme;// 删除键
settings.remove("Settings/Theme");

关键点

  • 根键路径:
    • HKEY_CURRENT_USER\\Software\\...(用户级配置)
    • HKEY_LOCAL_MACHINE\\Software\\...(系统级配置,需管理员权限)
  • 格式:
    • QSettings::NativeFormat:使用系统原生格式(Windows注册表)。
    • QSettings::IniFormat:写入INI文件(跨平台兼容)。

限制

  • 无法直接操作非标准注册表路径(如设备驱动键)。
  • 复杂操作(如权限修改)需借助Windows API。

2. 调用Windows原生API

如果需要更底层的控制(如操作任意注册表键、设置权限),需直接使用Windows API。

示例:创建/读取键值

#include <windows.h>
#include <QDebug>void writeRegistry() {HKEY hKey;LPCSTR subKey = "Software\\MyApp";DWORD value = 42;// 创建或打开键if (RegCreateKeyExA(HKEY_CURRENT_USER, subKey, 0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS) {// 写入DWORD值RegSetValueExA(hKey, "MyValue", 0, REG_DWORD, (BYTE*)&value, sizeof(value));RegCloseKey(hKey);}
}void readRegistry() {HKEY hKey;LPCSTR subKey = "Software\\MyApp";DWORD value;DWORD size = sizeof(value);if (RegOpenKeyExA(HKEY_CURRENT_USER, subKey, 0, KEY_READ, &hKey) == ERROR_SUCCESS) {if (RegQueryValueExA(hKey, "MyValue", NULL, NULL, (LPBYTE)&value, &size) == ERROR_SUCCESS) {qDebug() << "Read value:" << value;}RegCloseKey(hKey);}
}

常用API

函数作用
RegOpenKeyEx打开注册表键
RegCreateKeyEx创建或打开键
RegSetValueEx设置键值
RegQueryValueEx查询键值
RegDeleteKey删除键
RegCloseKey关闭键句柄

注意事项

  • 权限问题:操作 HKEY_LOCAL_MACHINE 可能需要管理员权限。
  • 字符串类型:
    • REG_SZ:普通字符串(LPCSTRLPCWSTR)。
    • REG_DWORD:32位整数。
  • Unicode支持:
    使用 RegOpenKeyExWLPCWSTR 处理宽字符(推荐)。

3. 高级场景

(1) 递归删除键

Windows API未提供直接删除整个子树的函数,需递归操作:

#include <windows.h>
#include <QDebug>void deleteRegistryKey(HKEY hRoot, LPCWSTR subKey) {HKEY hKey;if (RegOpenKeyExW(hRoot, subKey, 0, KEY_READ | KEY_WRITE, &hKey) != ERROR_SUCCESS) {return;}// 枚举并删除子键WCHAR childKeyName[256];DWORD childKeySize = sizeof(childKeyName);while (RegEnumKeyExW(hKey, 0, childKeyName, &childKeySize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) {deleteRegistryKey(hKey, childKeyName);childKeySize = sizeof(childKeyName);}RegCloseKey(hKey);RegDeleteKeyW(hRoot, subKey);
}

(2) 注册表权限修改

使用 RegGetKeySecurityRegSetKeySecurity 调整键的访问权限(需 SECURITY_DESCRIPTOR 知识)。


4. 安全性建议

  1. 最小权限原则:避免滥用 KEY_ALL_ACCESS
  2. 备份关键键:操作前导出注册表(.reg 文件)。
  3. 虚拟化重定向:
    在64位系统上,32位程序访问 HKEY_LOCAL_MACHINE\Software 会被重定向到 HKEY_LOCAL_MACHINE\Software\WOW6432Node。可通过 KEY_WOW64_64KEYKEY_WOW64_32KEY 标志指定路径。

总结

方法适用场景优缺点
QSettings简单键值存储,跨平台兼容易用,但功能有限
Windows API复杂操作(权限、子树删除)功能全面,需处理底层细节

根据需求选择合适方案,优先使用 QSettings 以减少平台依赖代码。

其他QT文章推荐

1. QT开发环境安装以配置。
2. QT线段画板实战
3. 半小时玩转QT桌面系统托盘(含托盘消息)
4. QT入门开发一个时钟
5. 半小时教你做大转盘游戏(QT篇)
6. 手把手教你制作【带吸附效果的线段绘制】(QT)
7. 手把手教你开发-滚动效果号码抽奖(QT)
8. 100行代码实现贪吃蛇小游戏
9.C++实现《扫雷》游戏(入门经典)
10. svg转图片工具开发
11. Qt网路与通信(获取本机网络信息)
12. Qt网路与通信(UDP客户与服务)
13. Qt网络与通信(TCP聊天室)
14. Qt多线程以及线程池
15. Qt散点图、折线图、柱状图、盒须图、饼状图、雷达图开发实例
16. 取色器(QT)
17. MQTT客户端入门开发
18.QT文件上传带进度条实例(含源码)
19. Qt音乐播放器开发实例(可毕设含源码)


文章转载自:

http://v2yQS75C.gLLhx.cn
http://XwxIjasb.gLLhx.cn
http://kiimnAYV.gLLhx.cn
http://TxSQzZoV.gLLhx.cn
http://JHlsZmgW.gLLhx.cn
http://tlLIZQgL.gLLhx.cn
http://gAkQ2rSr.gLLhx.cn
http://StaCO723.gLLhx.cn
http://tlZHWxnB.gLLhx.cn
http://AQ8Czqzj.gLLhx.cn
http://UunISFzf.gLLhx.cn
http://9nM3QiSD.gLLhx.cn
http://6xIneR44.gLLhx.cn
http://MMcP3nvv.gLLhx.cn
http://OfxSQ27s.gLLhx.cn
http://XRc5t4TS.gLLhx.cn
http://FDLbRJcT.gLLhx.cn
http://epExrbKU.gLLhx.cn
http://bLtiqoZN.gLLhx.cn
http://NlaPXCkn.gLLhx.cn
http://6PL9Ol3z.gLLhx.cn
http://XLpFnh3Z.gLLhx.cn
http://ggCIgH0l.gLLhx.cn
http://4uZr3hhZ.gLLhx.cn
http://gtBOJy8P.gLLhx.cn
http://M84nOmV8.gLLhx.cn
http://JXAUAphF.gLLhx.cn
http://Zz66JwY3.gLLhx.cn
http://Xs2LVBig.gLLhx.cn
http://wvU4wteX.gLLhx.cn
http://www.dtcms.com/wzjs/778715.html

相关文章:

  • 三合一网站建设报价做音乐头像网站
  • 上海怎样做网站可以做网站的网络
  • 导航网址网站怎么做简约个人网站模板
  • 站长之家装饰工程经营范围有哪些
  • 汽车行业网站建设比较中国西陆最新军事新闻
  • 做网站能挣钱吗做二手的网站都有哪些
  • 个人网站 免费驾校报名网站怎么做
  • 网站开发技术有包括网站首页代码
  • 潜江官方新闻广西seo优化
  • 哪个网站做攻略比较好wordpress文章关键字替换
  • 知识问答网站开发品牌vi设计手册案例欣赏
  • 无备案网站加速个人能接做网站的活么
  • 绍兴市柯桥区建设局网站用狐狸做logo的网站
  • 怎么通过做网站来赚钱吗wordpress 首页更换
  • 第八章 电子商务网站建设课件阿里指数查询官网
  • 做网站用笔记本做服务器吗企业网站建设的账务处理
  • 仁怀哪里有做网站的沈阳网站建设制作
  • 常用的搜索引擎的网站移动选号码网上选号手机号
  • 谁可以教我做网站7k7k传奇世界网页版
  • 烟台福山网站建设乐陵seo公司
  • 基于dw的动物网站设计论文福州seo顾问
  • 酒店网站建设方案结束语东莞建设网站培训
  • 电商设计网站培训网站制作复杂吗
  • 河南省建设厅举报网站网站框架图
  • 刷网站seo排名软件智慧工厂管理系统
  • 云南城乡建设网站网站源代码生成网站
  • 开网店做代理的公司网站flash网站模板源码
  • 企业网站有哪些功能?广州海珠区租房
  • 雅安北京网站建设襄阳网站建设xtehus
  • 建站公司 知乎 discuz备案价格网站