zoukankan      html  css  js  c++  java
  • 注册表编辑

    //打开注册表

    void CRegeditControlDlg::ShowList()
    {
         m_List.DeleteAllItems();
        
         CString       strTmp;
         HKEY hkResult;
         if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,REG_RUN,0,KEY_ALL_ACCESS,&hkResult) != ERROR_SUCCESS)
         {
              MessageBox("不能打开注册表!");
              return ;
         }
        
        
         DWORD dwIndex = 0,dwType = 0,dwNameLen = MAXBYTE,dwDateLen = MAXBYTE;
         char tcName[MAXBYTE];
         char byDate[MAXBYTE] ;
         while (TRUE)
         {
              //注意MYNONA,没有以下这两行,会致命,混绕我三天了!
              dwNameLen = MAXBYTE;
              dwDateLen = MAXBYTE;
              DWORD dwErrorCode =RegEnumValue(hkResult,dwIndex,tcName,&dwNameLen,NULL,&dwType,(unsigned char *)byDate,&dwDateLen);
              if(dwErrorCode)
              {
                   //MessageBox("获取失败");
              }
              if(dwErrorCode != ERROR_SUCCESS)
              {
                   break;
              }
             

              strTmp.Format("%d",dwIndex);
              m_List.InsertItem(dwIndex,strTmp);
              m_List.SetItemText(dwIndex,1,tcName);
              m_List.SetItemText(dwIndex,2,byDate);
             
              dwIndex++;
         }
         RegCloseKey(hkResult);
    }


    void CRegeditControlDlg::OnBtnAdd()
    {
         // TODO: Add your control notification handler code here
         CRegAdd RegAdd;
         RegAdd.DoModal();
        
         if( RegAdd.m_szKeyName.GetLength() > 0 && RegAdd.m_szKeyValue.GetLength() > 0)
         {
              HKEY hKey = NULL;
              LONG lRet = RegOpenKey(HKEY_LOCAL_MACHINE,REG_RUN,&hKey);

              if(lRet != ERROR_SUCCESS)
              {
                   return;
              }

              RegSetValueEx(hKey,RegAdd.m_szKeyName,NULL,REG_SZ,(const unsigned char *)&RegAdd.m_szKeyValue,
                   strlen(RegAdd.m_szKeyValue) +sizeof(char));

              RegCloseKey(hKey);
              ShowList();
         }else
         {
              MessageBox("请输入完整的内容");
         }

         //MessageBox(RegAdd.m_szKeyName);
         //MessageBox(RegAdd.m_szKeyValue);
    }


    void CRegeditControlDlg::OnBtnDel()
    {
         // TODO: Add your control notification handler code here
         POSITION pos = m_List.GetFirstSelectedItemPosition();
         int nSelected = -1;

         while( pos )
         {
              nSelected = m_List.GetNextSelectedItem(pos);
         }

         if( -1 == nSelected)
         {
              MessageBox("请选择要删除的启动项");
              return ;
         }

         char szKeyName[MAXBYTE] = {0};
         m_List.GetItemText(nSelected,1,szKeyName,MAXBYTE);

         MessageBox(szKeyName);

         HKEY hKey = NULL;

         LONG lRet = RegOpenKey(HKEY_LOCAL_MACHINE,REG_RUN,&hKey);

         RegDeleteValue(hKey,szKeyName);

         RegCloseKey(hKey);
    }
  • 相关阅读:
    利用原生JS判断组合键
    MySQL基本操作简述
    Java链接Mysql传输数据
    Java培训--->>基础
    Java基础之字符串-->>字符串处理
    Java基础之结构-->>条件结构与循环结构
    Java基础之数组-->>数组常用操作
    Front End Development Certification (HTML5 and CSS)
    FlexSlider插件的详细设置参数
    常见<meta>的基本用法详解
  • 原文地址:https://www.cnblogs.com/mynona/p/3162645.html
Copyright © 2011-2022 走看看