zoukankan      html  css  js  c++  java
  • 64位读取注册表与32位的区别

    有一个读取注册表信息的程序  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkeystring , 0, KEY_READ, &hKey) == ERROR_SUCCESS)/

    ,在32位下完全正常,但是在64位返回值正确,但就是读不到东西。后来单步发现读不到东西,就搜64位读注册表失败,发现需要加

    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkeystring , 0,KEY_READ|KEY_WOW64_64KEY, &hKey) == ERROR_SUCCESS)就可以了,我是全部把权限提高,还可以根据不同的操作系统,设置不同的参数。

    IsWow64Process 判断64位操作系统

    typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
    LPFN_ISWOW64PROCESS fnIsWow64Process;
    IsWow64返回TRUE则是64位系统,否则为32位系统。
    BOOL IsWow64()
    {
        BOOL bIsWow64 = FALSE;
        fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
            GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

        if(NULL != fnIsWow64Process)
        {
            if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
            {
                            return FALSE;
            }
        }
        return bIsWow64;
    }

    可参考的文献:

    http://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx

    http://www.codeproject.com/Articles/51326/Net-Compilation-registry-accessing-and-applicatio

    http://boluns.blog.163.com/blog/static/69845968201071132032313/

    友情链接:http://www.cnblogs.com/walfud/articles/2311065.html

  • 相关阅读:
    Linux下安装JDK
    Flink源码阅读(五)——Flink中任务相关的核心类简析
    使用CloudFlare Worker 来免费部署 JSProxy 服务
    Nginx:进程调度
    Javassist基本用法汇总
    IO
    IO
    springcloud3(五) spring cloud gateway动态路由的四类实现方式
    架构设计(二) 互联网网关平台对比
    Python 的协程
  • 原文地址:https://www.cnblogs.com/shmilxu/p/5237372.html
Copyright © 2011-2022 走看看