//1.大家可以写成一个类,放到自己的积累库中,方便以后的工作中使用
//2.注意:
//char ansi[MAX_PATH];
//WideCharToMultiByte(CP_ACP,0,szProductType,-1,ansi,sizeof(ansi),NULL,NULL);
//3.代码:
#include "stdafx.h"
#include "AppRegeditPath.h" //AppRegeditPath这个是我自己写的类
#include
#pragma comment(lib,"advapi32")
CString CAppRegeditPath::GetAppRegeditPath(CString strAppName)
{
//定义相关变量
HKEY hKey;
CString strAppRegeditPath("");
TCHAR szProductType[MAX_PATH];
memset(szProductType,0,sizeof(szProductType));
DWORD dwBuflen = MAX_PATH;
LONG lRet = 0;
//下面是打开注册表,只有打开后才能做其他操作
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, //要打开的根键
LPCTSTR(strAppName), //要打开的子子键
0, //这个一定为0
KEY_QUERY_VALUE, //指定打开方式,此为读
&hKey); //用来返回句柄
if(lRet != ERROR_SUCCESS) //判断是否打开成功
{
return strAppRegeditPath;
}else
{
//下面开始查询
lRet = RegQueryValueEx(hKey, //打开注册表时返回的句柄
TEXT("InstallLocation"), //要查询的名称,查询的软件安装目录在这里
NULL, //一定为NULL或者0
NULL,
(LPBYTE)szProductType, //我们要的东西放在这里
&dwBuflen);
if(lRet != ERROR_SUCCESS) //判断是否查询成功
{
return strAppRegeditPath;
}else
{
RegCloseKey(hKey);
//char ansi[MAX_PATH];
//WideCharToMultiByte(CP_ACP,0,szProductType,-1,ansi,sizeof(ansi),NULL,NULL);
strAppRegeditPath = szProductType;
}
}
return strAppRegeditPath;
}
//4.如果想运行该程序,用winExe()来运行
获取注册表安装路径
本文介绍了一个用于从Windows注册表中获取应用程序安装路径的C++类实现,包括如何打开注册表键、读取键值并将宽字符转换为多字字符等步骤。
4万+

被折叠的 条评论
为什么被折叠?



