如何在64/32位机器上读取32位注册表

<span style="font-size:24px;">typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process; 
BOOL IsWow64() 
{ 
    BOOL bIsWow64 = FALSE; 
    fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress( 
        GetModuleHandle(TEXT("kernel32")),"IsWow64Process"); 
    if (NULL != fnIsWow64Process) 
    { 
        if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64)) 
        { 
            // handle error 
            AfxMessageBox("IsWow64 error!"); 
        } 
    }
    return bIsWow64; 
}        

HKEY hKey;     
LPCTSTR lpRun = L"Software\\MozillaPlugins\\VenusPlugin@wondertek.com"; 
REGSAM flag = IsWow64() ? KEY_READ|KEY_WOW64_32KEY : KEY_READ;//
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, flag, &hKey);

    if(lRet == ERROR_SUCCESS) 
    { 
                DWORD type,datalen;
                _WCHAR wcPath[1024];
                RegQueryValueEx(
                        hKey,            // handle to key
                        L"path",  // value name
                        0,   // reserved
                        &type,       // type buffer
                        LPBYTE(wcPath),        // data buffer
                        &datalen     // size of data buffer
                );

                SetEnvironment((_CONST _WCHAR *)L"WONDER", (_WCHAR *)wcPath);

        RegCloseKey(hKey);
    }</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值