网页里面有这样一段参数:<PARAM NAME="rootkey" value="HKEY_LOCAL_MACHINE">,传到activex里面,想通过这个参数打开注册表的位置,但是RegOpenKey()的参数是两个HKEY,这该怎么转化呢

解决方案 »

  1.   

    比较字符串,然后转换就是了,比如:
    HKEY key;
    if (strcmp(value, "HKEY_LOCAL_MACHINE") == 0)
        key = HKEY_LOCAL_MACHINE;
      

  2.   

    CString             szBaseKeys[4];
       HKEY                hRootKeys[4];   szBaseKeys[0]= _T("HKEY_CLASSES_ROOT");
       szBaseKeys[1]= _T("HKEY_CURRENT_USER");
       szBaseKeys[2]= _T("HKEY_LOCAL_MACHINE");
       szBaseKeys[3]= _T("HKEY_USERS");   hRootKeys[0]= HKEY_CLASSES_ROOT;
       hRootKeys[1]= HKEY_CURRENT_USER;
       hRootKeys[2]= HKEY_LOCAL_MACHINE;
       hRootKeys[3]= HKEY_USERS;
    一一对应转换过来
      

  3.   

    比较字符串,然后转换就是了,比如:
    HKEY key;
    if (strcmp(value, "HKEY_LOCAL_MACHINE") == 0)
        key = HKEY_LOCAL_MACHINE;------------此方式简单
      

  4.   

    楼主别忘了还有一个RegCreateKeyEx,接收一个HKEY参数和一个字串参数,构造一个HKEY。
    你只需要对根键作转换就OK了。