• MFC 注册表


    打开注册表

    在这里插入图片描述

    void CREGDemoDlg::OnBnClickedBtnOpen()
    {
    	//打开注册表
    	HKEY hKey;
    	if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Baidu.com", 0, KEY_ALL_ACCESS, &hKey))
    	{
    		MessageBox(L"打开注册表失败");
    		return;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    对注册表的键的操作

    创建子键

    在这里插入图片描述

    //创建子键
    	HKEY hKey;
    	DWORD dwDisposition;
    	if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Baidu.com\\12345", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisposition))
    	{
    		MessageBox(L"创建失败");
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    删除子键

      //删除子键
    	RegDeleteKey(HKEY_CURRENT_USER, L"Software\\Baidu.com\\12345");
    
    • 1
    • 2

    遍历子键

    在这里插入图片描述

      //打开注册表
    	HKEY hKey;
    	if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\2345.com", 0, KEY_ENUMERATE_SUB_KEYS, &hKey))
    	{
    		MessageBox(L"打开注册表失败");
    		return;
    	}
    
    	DWORD dwIndex = 0;
    	TCHAR szName[MAX_PATH];
    	LONG result;
    	while (1)
    	{
    		result = RegEnumKey(hKey, dwIndex, szName, MAX_PATH);
    
    		if (result == ERROR_NO_MORE_ITEMS || result == ERROR_INVALID_HANDLE)
    			break;
    		else
    		{
    			szName.Format(L"%s\r\n", szName);
    
    			int nLength = m_edit.GetWindowTextLength();
    			m_edit.SetSel(nLength, -1);
    
    			m_edit.ReplaceSel(szName);
    		}
    
    		dwIndex++;
    	}
    	
    	RegCloseKey(hKey);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    对注册表值的操作

    读取值

    在这里插入图片描述

    	CString str;
    	HKEY hKey;
    	if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Baidu.com\\BaiduYunGuanjia", 0, KEY_ALL_ACCESS, &hKey))
    	{
    	
    		str.Format(L"打开注册表失败.错误代号:%d",GetLastError());
    		MessageBox(str);
    		return;
    	}
    
    	DWORD dwType = REG_SZ;
    	TCHAR szData[MAX_PATH] = {0};
    	DWORD dwSize = 0;
    	//操作两遍
    	RegQueryValueEx(hKey, L"Version", NULL, &dwType,NULL, &dwSize);
    
    	str.Format(L"第一次查询.错误代号:%d", GetLastError());
    	MessageBox(str);
    
    	RegQueryValueEx(hKey, L"Version", NULL, &dwType,(LPBYTE)szData, &dwSize);
    
    	UpdateMsg(szData);
    	RegCloseKey(hKey)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    void CREGDemoDlg::UpdateMsg(CString str)
    {
    	str.Format(L"%s\r\n", str);
    
    	int nLength = m_edit.GetWindowTextLength();
    	m_edit.SetSel(nLength, -1);
    
    	m_edit.ReplaceSel(str);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    设置值

        CString str;
    	HKEY hKey;
    	if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey))
    	{
    		
    		str.Format(L"打开注册表失败.错误代号:%d",GetLastError());
    		MessageBox(str);
    		return;
    	}
    
    	
    	TCHAR szValue[MAX_PATH] = {0};
    	GetModuleFileName(NULL, szValue, MAX_PATH);//设置开机自启动
    
    	//RegSetValueEx(hKey, L"张三", 0, REG_SZ, (const BYTE*)szValue, MAX_PATH);//删除
    
    	
    
    	RegCloseKey(hKey);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在这里插入图片描述

  • 相关阅读:
    怎么将语音转换成文字?这两种转换方法极其简单
    Redis学习
    Qt官方示例学习目录,长期更新...
    自动化测试如何进阶?本文从4个方面带你系统进阶自动化涨薪5k...
    顺序栈与链式栈
    数组(持续更新后续)
    webpack构建工具面试题
    C++设计模式之单例模式、模板模式、状态模式、原型模式、CRTP 模式、组件模式、观察者模式、发布-订阅模式、访问者模式
    C# Winform编程(1)基础篇
    【快乐离散数学】Discrete Structure 课程计划书
  • 原文地址:https://blog.csdn.net/weixin_45672157/article/details/134026126