zoukankan      html  css  js  c++  java
  • [C++]用VC++来设置获得注册表的键值(问题解决)

    下面这个是基于MFC的基本对话写的。。  演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。

    void CUserRegDlg::OnOK() 
    {
     // TODO: Add extra validation here
     
     CString str = "hello reg";
     DWORD regd = 100;
     BYTE bValues[] = { 0x11, 0x12, 0x55 };

     BYTE Vals[100];
     DWORD lenIt = 100;
     HKEY hk;

     // 打开注册表如果没有则创建, 返回注册表句柄于hk
      if ( ::RegCreateKey( HKEY_LOCAL_MACHINE, "SOFTWARE\\Test\\", &hk ) == ERROR_SUCCESS )
     {
      AfxMessageBox( "打开注册表" );
     }

     // 保存参数到注册表
     try
     {
      /* 
      RegSetValueEx( 根键句柄, 值项名称, 保留参数补0即可, 数据类型, 所设置的数据, 数据长度 )
      用来设置注册表键特定的值,如果数据不存在则创建它  
      */
      /* 保存字符值到注册表 */
      if ( ::RegSetValueEx( hk, "Server", 0, REG_SZ, (LPBYTE)(LPCSTR)str, str.GetLength( ) +1 ) == ERROR_SUCCESS )
      {
       AfxMessageBox( "字符值参数保存成功" );
      }
      
      /* 保存双字节到注册表 */
      if ( ::RegSetValueEx( hk, "part", 0, REG_DWORD, (BYTE*)&regd, sizeof( regd ) ) == ERROR_SUCCESS )
      {
       AfxMessageBox( "双字节参数保存成功" );
      }

      /* 保存二进制到注册表 */ 
      if ( ::RegSetValueEx( hk, "id", 0, REG_BINARY, bValues, 3) == ERROR_SUCCESS )
      {
       AfxMessageBox( "二进制参数保存成功" );
      }  


      /*
      RegQueryValueEx( 根键句柄, 值项名称, 保留参数补0即可, 返回值的数据类型(可为NULL), 返回
           读取的数据, 返回读取数据的长度 )
      用来返回注册表键的特定名称的值
      /*
      /* 获得字符值 */
      if ( ::RegQueryValueEx( hk, "Server", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
      {
       AfxMessageBox( (CString)Vals );
      }

      /* 获得双字节值 */
      if ( ::RegQueryValueEx( hk, "part", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
      {
       AfxMessageBox( (CString)Vals );
      }


      /* 获得二进制值 */ 
      if ( ::RegQueryValueEx( hk, "id", 0, NULL, (BYTE*)Vals, &lenIt ) == ERROR_SUCCESS )
      {
       AfxMessageBox( (CString)Vals );
      }

      // 关闭注册表
      ::RegCloseKey( hk );
     }
     catch(...)
     {
      return;
     }

    // CDialog::OnOK(); 
    }

  • 相关阅读:
    测量标准体重
    bytearray和file的后端上传方式
    jdbc in postgres
    Using dblink in Postgres
    计算文件的MD5值(Java & Rust)
    spring读写分离(配置多数据源)[marked]
    Spring Transaction + MyBatis SqlSession事务管理机制[marked]
    jetty ZipException: invalid entry size
    maven
    KAL1 LINUX 官方文档之虚拟化 --- 转换为OVA
  • 原文地址:https://www.cnblogs.com/mfryf/p/2347974.html
Copyright © 2011-2022 走看看