CRegKey reg;
char KeyName[]="Software\\Microsoft\\Internet Explorer\\Extensions\\{EC1C7192-09D8-4e21-B86E-BAB6D4349E4D}";
reg.Create(HKEY_LOCAL_MACHINE,KeyName); 
让keyName动态产生。

解决方案 »

  1.   

    当然有。楼主可以查查注册表相关的API函数,我现在身旁没资料。
      

  2.   

    HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。
      LPCTSTR data_Set=″Software\Microsoft\Windows\CurrentVersion\″;  //打开与路径 data_Set 相关的 hKEY,第一个参数为根键名称,第二个参数表
      //示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。
      //访问注册表,hKEY则保存此函数所打开的键的句柄。  long ret0=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY);
      if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行
      {MessageBox(″错误: 无法打开有关的hKEY!″);
      return;}  //查询有关的数据 (用户姓名 owner_Get)。
      LPBYTE owner_Get=new BYTE[80];
      DWORD type_1=REG_SZ ; DWORD cbData_1=80;   //hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,″RegisteredOwner″
      //表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所
      //查询的数据,cbData_1表示预设置的数据长度。
        long ret1=::RegQueryValueEx(hKEY, ″RegisteredOwner″, NULL,
      &type_1, owner_Get, &cbData_1);
      if(ret1!=ERROR_SUCCESS)

      MessageBox(″错误: 无法查询有关注册表信息!″);
      return;
      }
      // 查询有关的数据 (公司名 company_Get)
      LPBYTE company_Get=new BYTE [80];
      DWORD type_2=REG_SZ; DWORD cbData_2=80; 
      long ret2=::RegQueryValueEx(hKEY, ″RegisteredOrganization″, NULL,&type_2,company_Get, &cbData_2);
      if(ret2!=ERROR_SUCCESS)
      {
      MessageBox(″错误: 无法查询有关注册表信息!″);
      return;
       }
      // 将 owner_Get 和 company_Get 转换为 CString 字符串, 以便显示输出。
      CString str_owner=CString(owner_Get);
      CString str_company=CString(company_Get);
      delete[] owner_Get; delete[] company_Get;
      // 程序结束前要关闭已经打开的 hKEY。
      ::RegCloseKey(hKEY);