C++语言操作windows注册列表
小标 2018-07-20 来源 : 阅读 1047 评论 0

摘要:本文主要向大家介绍了C++语言操作windows注册列表,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言操作windows注册列表,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

我需要查找某程序的安装目录,首先想到的是如果正常安装,不需要遍历整个文件树,直接通过注册列表的查询就可以读取程序的安装目录,看了看网络上大部分windows注册列表的东西,意思大概明白了,先通过RegOpenKeyEx获得路径,在通过RegQueryValueEx获取某ValueName的值。

之间使用一个hkey作为连接,最后需要释放,RegOpenKeyEx在最后使用hkey使用时需要&因为是PHKEY。

RegQueryValueEx就是创建一个内存空间,强制转换成LPBYTE,dwSize貌似对我来说什么用处都没有。

最后通过转换成string作为函数返回值,如果直接使用数组会产生乱码。

#include <cstdlib>#include <iostream>#include <windows.h>

using namespace std;string GetRegValueData(TCHAR*,TCHAR*);

int main(int argc, char *argv[]){

    cout << GetRegValueData("Software\\XXX","path") << endl;

 

    system("PAUSE");

    return EXIT_SUCCESS;

}

//HKEY_CURRENT_USER\Software\DNF_chinastring GetRegValueData(TCHAR* subkey,TCHAR* regvalue){

    HKEY hkey = NULL;

    TCHAR Data[MAX_PATH];

    DWORD dwSize;

    //WINADVAPI LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY); //here it write need a phkey ,is a piont to HKEY for subkey//Open  HKEY_CURRENT_USER\ + subkey

    if (RegOpenKeyEx(HKEY_CURRENT_USER,subkey,0,KEY_ALL_ACCESS,&hkey) == ERROR_SUCCESS)

    {

        cout << "Open the Registration list : HKEY_CURRENT_USER\\" << subkey << endl;

//Get the Registration list Value        //WINADVAPI LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);

        if(RegQueryValueEx(hkey,regvalue,NULL,NULL,(LPBYTE)Data,&dwSize) == ERROR_SUCCESS)

        {

            cout << "After RegQueryValueEx ValueData :" << Data << endl;

            RegCloseKey(hkey);

            return (string)Data;

        }

    }

    RegCloseKey(hkey);

    return FALSE;

}

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程