QT 注册表的修改

74 篇文章 66 订阅 ¥399.90 ¥499.90

1 注册表

1.注册表在哪里

window+R 打开运行界面 输入 regedit 打开 注册表界面

在这里插入图片描述

2. 注册表的数据格式

数据表 起始也是ini格式 就是key value 的 键值对显示

3. 数据的操作

QT创建ini文件 及 使用

之前的文章已经介绍了 ini文件的创建以及数据修改
这里其实还是一样的 ,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt中,可以使用QSettings类来读取和写入注册表。但是,修改注册表需要管理员权限。要获取管理员权限,可以使用Windows API的ShellExecute函数。 以下是一个示例代码,可以在Qt中获取管理员权限并修改注册表: ```cpp #include <QCoreApplication> #include <Windows.h> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 获取管理员权限 SHELLEXECUTEINFO shexinfo = {0}; shexinfo.cbSize = sizeof(SHELLEXECUTEINFO); shexinfo.fMask = SEE_MASK_NOCLOSEPROCESS; shexinfo.lpVerb = L"runas"; shexinfo.lpFile = L"cmd.exe"; shexinfo.nShow = SW_HIDE; if (!ShellExecuteEx(&shexinfo)) { qDebug() << "Failed to get admin privileges!"; return a.exec(); } // 等待管理员权限获取完成 WaitForSingleObject(shexinfo.hProcess, INFINITE); // 写入注册表 HKEY hKey; QString keyPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; QString appName = "MyApp"; QString appPath = "C:\\MyApp\\MyApp.exe"; LONG result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath.toStdWString().c_str(), 0, KEY_WRITE, &hKey); if (result != ERROR_SUCCESS) { qDebug() << "Failed to open registry key!"; return a.exec(); } result = RegSetValueEx(hKey, appName.toStdWString().c_str(), 0, REG_SZ, (LPBYTE)appPath.toStdWString().c_str(), (DWORD)(appPath.length() + 1) * sizeof(wchar_t)); if (result != ERROR_SUCCESS) { qDebug() << "Failed to write registry value!"; RegCloseKey(hKey); return a.exec(); } RegCloseKey(hKey); qDebug() << "Registry key updated successfully!"; return a.exec(); } ``` 在上面的代码中,我使用了Windows API的ShellExecute函数来获取管理员权限。然后,我打开了注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",并将我的应用程序路径写入到注册表中。最后,我关闭了注册表项句柄和进程句柄。 请注意,修改注册表是危险的操作,需要谨慎处理。在实际应用中,您应该根据您的具体需求进行修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光顶术士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值