qt读取注册表时重定向问题的解决
2016-05-10 19:39
831 查看
我们知道32位程序在64位机器上运行时,当访问注册表时,有重定向问题的存在,下面针对Qt编程中这个问题的解决提供一种方法。
HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。
LPCSTR data_Set="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
long ret0=(::RegOpenKeyExA(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hKEY));
if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行
{
qDebug()<<"错误: 无法打开有关的hKEY!";
}
BYTE info[80]={0};
DWORD type_1=REG_DWORD ;
DWORD cbData_1=80;
//hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。
//表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所。
//查询的数据,cbData_1表示预设置的数据长度。
long ret1=::RegQueryValueExA(hKEY, "RegisteredOwner", NULL,
&type_1, (LPBYTE)info, &cbData_1);
//long ret1=::KeyqueryValue(hKEY, "InstallDate", info, &len);
if(ret1!=ERROR_SUCCESS)
{
qDebug()<<"错误1: 无法查询有关注册表信息!";
}
// QString str = ::fromLocal8Bit(info);
// QString str =QString::fromAscii(info);
QString str =QString::fromAscii((char*)(info));
qDebug()<<str;
::RegCloseKey(hKEY);
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- VC++ 中ListCtrl经验总结
- VC++实现程序开机启动运行的方法
- VC++中HTControl控件类的CHTSlider控制杆控件类简介
- VC++中HTControl控制类使用之CHTDlgBase对话框基类实例
- Vc++ 控件List Control用法总结
- MFC控件大小随窗体大小而改变
- VC++的if语句应用范围分析
- VC++在TXT文件指定位置追加内容的方法
- VC++植物大战僵尸中文版修改器实现代码
- CISBitmap派生的VC++位图透明类实例
- VC++创建msi文件的方法
- VC++中图像处理类CBitmap的用法
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- VC++的combobox控件用法汇总
- VC++中内存对齐实例教程
- VC++实现通过API来查看程序错误信息的方法