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);
    }
  • 相关阅读:
    python生成6位纯数字
    win10下配置nginx
    Unexpected end of JSON input while parsing near '…"
    el-select中显示图标/图片设置
    github上拉去代码执行 npm install报错code:128
    win10下配置多个mysql数据库
    centos7标准版命令界面和图形界面相互切换
    华为RH2288V3服务器部署指南
    datatables屏蔽警告弹窗
    迁移数据时 timestamp类型字段报错: 1067
  • 原文地址:https://www.cnblogs.com/mynona/p/3162645.html
Copyright © 2011-2022 走看看