• 注册表编辑


    //打开注册表

    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);
    }
  • 相关阅读:
    [转] Web前端优化之 Flash篇
    [转] Web 前端优化最佳实践之 Mobile(iPhone) 篇
    [转] Web前端优化之 图片篇
    [转] Web前端优化之 Javascript篇
    [转] Web前端优化之 CSS篇
    react事件获取元素
    Nodejs学习笔记02【module】
    Nodejs学习笔记01【EventEmitter】
    javascript运算符优先级
    jQuery-placeholder
  • 原文地址:https://www.cnblogs.com/mynona/p/3162645.html
Copyright © 2020-2023  润新知