标签:mfc return string ires keyValue hMyKey 注册表 BOOL
#include <windows.h>
typedef BOOL(WINAPI* LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
BOOL RegWriteString(HKEY hKey, string keyName, string keyValue, bool valueResult)
{
if (keyValue == "") {
return valueResult;
}
return RegSetValueEx(hKey, keyName.c_str(), 0, REG_SZ, (const BYTE*)keyValue.c_str(), strlen(keyValue.c_str()));
}
LPFN_ISWOW64PROCESS
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle("kernel32"), "IsWow64Process");
BOOL SystemUtil::IsWow64()
{
BOOL bIsWow64 = FALSE;
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(), &bIsWow64))
{
// handle error
}
}
return bIsWow64;
}
/// <summary>
/// 读取指定的key
/// </summary>
/// <param name="displayName"></param>
/// <returns></returns>
/// <summary>
/// 获取32/64对应的注册表值
/// </summary>
/// <returns></returns>
string GetUninstallKey() {
if (IsWow64()) {
return "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
}
else {
return "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
}
}
CString GetRegKeyString(string displayName, const char* subKey) {
string key = GetUninstallKey() + displayName;
LONG ires;
HKEY hMyKey;
DWORD Type = REG_SZ;
DWORD count = 256;
byte mstr[256] = "";
ires = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key.c_str(), 0,
KEY_READ, &hMyKey);
if (ERROR_SUCCESS != ires)
return "";
else
ires = RegQueryValueEx(hMyKey, subKey, 0, &Type,
mstr, &count);
ires = RegCloseKey(hMyKey);
CString tms = (LPCTSTR)mstr;
return tms;
}
标签:mfc,return,string,ires,keyValue,hMyKey,注册表,BOOL 来源: https://www.cnblogs.com/ives/p/14900640.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。