MFC注册表CRegKey
注册表是由windows维护的一个小数据库.里面也会保存windows本身的很多配置信息.
有时程序中要存些设置信息,一个方法就是创建一些普通的txt或xml文件,然后保存进去就行了.另一办法就是保存到注册表里
最顶端的5个根键:
1.)HKEY_CLASSES_ROOT
定义了系统中所有文件类型标志和基本操作标志.
2.)HKEY_CURRENT_USER
当前用户的配置信息,包括环境变量、桌面设置、网络连接,软件运行信息等
3.)HKEY_LOCAL_MACHINE
本机相关的系统信息,包括硬件信息,驱动信息,内存数据,总线数据等等。
4.) HKEY_USER
这里记录了本机器上所有用户的设置
5.)KKEY_CURRENT_CONFIG
包括字体、BIOS、操作系统、打印机等四项的配置信息。该字段是HKEY_LOCAL_MACHINE\Config的副本
1,4,5,项根键我们一般只是读取一些信息
2,3两项根键下就会写入一些应用程序自己的配置信息
用的最多的是这两个位置
HKEY_CURRENT_USER \ SOFTWARE 只有当前用户能看到,如果login off换个用户就看不到了
HKEY_LOCAL_MACHINE \ SOFTWARE 所有用户都能看到
平时用的大部分软件都是把配置信息放HKEY_CURRENT_USER\ SOFTWARE下
注册表键值内容:
Name , Type , Data
Type只是起描述作用,真正用到的是Name , Data,相当于MFC中的CMap类,name就是键名,data是键值.
Type可以看成编程语言中的数据类型,Name就是变量名,Data是变量的值
常用的类型:
REG_SZ----字符串,类似Char* 或者CString
REG_DWORD----数值,类似DWORD (unsigned long)
MFC中操作注册表主要是CRegKey这个类.
创建函数:
//有点类似于创建一个目录供往里面写文件一样.
CRegKey key;
key.Create(HKEY_CURRENT_USER, _T("SOFTWARE\\ArwenSoft"));
key.Close();
打开并添加值
int iMaxNumber = 100;
BOOL bOpenReg = key.Open(HKEY_CURRENT_USER, _T("SOFTWARE\\ArwenSoft"));
//实际上我们有时真需要把密码保存到注册表时可不能明码保存,先得把密码加密后再保存,读取时再解密.
key.SetStringValue(_T("Password"), _T("123"));
key.SetDWORDValue(_T("count"),iMaxNumber);
key.Close();
查看注册表信息
DWORD dwNum;
BOOL bOpenReg = key.Open(HKEY_CURRENT_USER, _T("SOFTWARE\\ArwenSoft"));
key.QueryDWORDValue(_T("count"),dwNum); //或者key.QueryValue(dwNum,_T("count"));
删除信息
key.DeleteValue(_T("count"));
MFC操作注册表便捷方式--使用CWinApp成员函数
1.新建项
CWinApp类InitInstance函数中,有以下代码
SetRegistryKey(_T("Local AppWizard-Generated Applications"));//在HKEY_CURRENT_USER \ SOFTWARE 下面新建一个项.
可以把名字改成其他任意值.比如注释掉上面那行代码,改成这样SetRegistryKey(_T("ArwenProduct"));
2,添加信息
AfxGetApp()->WriteProfileString(_T("Settings"),_T("Password"),_T("123")); //写入字符串值,
相当于在前面的ArwenProduct下面再生成新的项Settings.然后第二个参数是值名,第三个是键值
WriteProfileString(_T("ConfigInfo\\Settings"),_T("Password"),_T("123")); //写入字符串值,多几层项
AfxGetApp()->WriteProfileInt(_T("settings"),_T("count"),123); //写入数字
3.读取信息
CString strPwd = AfxGetApp()->GetProfileString(_T("settings"),_T("pwd"));
int num = AfxGetApp()->GetProfileInt(_T("settings"),_T("count"));
MFC注册表CRegKey相关推荐
- VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)
注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.比如我们打开一个记事本,调整其窗口大小,使用 ...
- vs2008环境下MFC对注册表的读写操作
最近修改一个在vs2008环境下的MFC project,其中用到对注册表的读写操作,虽然在网上down了不少代码也查阅了不少文章,但运行始终存在不少问题,现把我运行成功的代码分享出来,希望对有需要的 ...
- CRegKey 注册表操作
1.简介 CRegKey提供了对系统注册表的操作方法,通过CRegKey类,可以方便的打开注册表的某个分支或子键(CRegKey::Open),可以方便的修改一个键的键值(CRegKey::SetVa ...
- 孙鑫-MFC笔记七--文件与注册表
c 语言对文件的操作是通过 FILE 结构体来完成的 1 定义一个文件结构体的指针,获取文件结构体指针并付给 如何打开一个文件 FILE *fopen(const char*file ...
- 使用MFC修改注册表DWORD类型的值
最近需要禁用一个UAC的权限的功能,在注册表里修改一个DWORD类型的值,找了好多方法都只有一部分管用,自己摸索着把功能实现了,还是很感谢网上的大神写的帖子的 在 .h 文件中定义好方法 在 .cpp ...
- MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
在 框架类响应 WM_CLOSE消息的时候添加如下代码 HKEY key; //用于接收注册表项句柄 WINDOWPLACEMENT info; //获得窗体位置状态信息 Ge ...
- 我的YUV播放器MFC小笔记:注册表读写
在使用YUV Player Deluxe时,发现其可保存上一次的参数,研究之后,才知道它是使用注册表来实现的.下面是YUV播放器与注册表有关的函数接口,注册表与了我的大名外,其它值是参照YUV Pla ...
- VC++ MFC 遍历注册表,获取网卡名称。(设备管理器中的名称)
HKEY hKey_tmp = NULL, hKey = NULL;TCHAR comNum[64],achKey[64];CString comname,sActive,temp;DWORD cbM ...
- C++ (MFC) 编写注册表,使开机自启动
注册表的编写 设置一个按钮来调用注册表的函数: void CMFCtest1Dlg::OnBnClickedButton5() {// TODO: 在此添加控件通知处理程序代码Autostart(); ...
最新文章
- 【欧拉回路】解题报告:luogu P6066 [USACO]Watchcow (欧拉回路详解)【模板】
- keras图像增强augmentation
- 如何应对“吴恩达:人工智能落地最重要的挑战之一是小数据”的困境?
- scrapy发送翻页请求
- 结构体和类的区别-Objective-C基础
- 【ArcGIS风暴】捕捉VS经典捕捉,谁更有用武之地?
- bufferreader readline一次读一行_python中read(),readline(),readlines()的区别
- Facebook AI牛津提出带“轨迹注意力”的Video Transformer,在视频动作识别任务中性能SOTA!...
- [转载]Linux shell中的竖线(|)——管道符号
- i12单双耳切换_“摸一摸”,乐在其中 | 雷柏i100蓝牙TWS耳机,主从切换,可单耳使用,也可双耳使用...
- 教你不要光驱一样重装系统
- 花花公子发大招!一款可以“美容”的安全套,极致××体验从它出发 | 钛空舱
- 【Matlab车牌识别】BP神经网络车牌识别【含GUI源码 669期】
- python的彪悍特性--自省
- 常见图片分类及适用场景
- 闲鱼如何高效打造一个多业务、低侵入的搜索链路
- oracle HTTP Server安装和配置为集群代理(linux)
- 使用PowerPhotos for Mac查找重复项似乎缺少一些重复的照片的解决办法
- shell脚本俄罗斯方块
- Unity GL画线的坑
热门文章
- 解决虚拟机无法连接USB设备(U盘、网卡等等),网上各种方法均试过但无效
- android su文件,Android su开放root权限
- 72、公安网络视频监控系统解决方案
- web实现地图画标识物
- ubuntu16.04 安装opencv的viz模块
- 免费离线PDF工具箱,PDF工具大全,PDF合并PDF加密PDF解密PDF格式转换PDF分割PDF旋转以及从PDF中提取图片,满足对PDF操作的一切需求~完全免费无使用次数限制,文末附下载链接~
- 黑客消失在互联网时代
- Wireshark 301: Finding the busiest computers on your network
- GO语言环境搭建 + Sublime text 3 + Git + MarGo + gocode 组合配置详解
- AspNetCore3.1 在CentOS 用docker发布 踩坑辛酸史