mfc中注册表的使用
来源:互联网 发布:宏业软件怎么用 编辑:程序博客网 时间:2024/06/11 03:47
上个星期就在看mfc的注册表相关的东西。无奈上周心不在焉,并没有着手代码。这周终于运行成功了,记录下来,以后可以拿出来复习。
做注册表主要是为了项目中的一些不怎么变的数据,项目是和视频监控相关的,对于设置好的预置点,希望下一次应用程序重新打开的时候不需要重新设置这就需要保存预置点信息。
代码贴上:
int bytesToInt(byte* bytes, int size = 4)
{
int addr = bytes[0] & 0xFF;
addr |= ((bytes[1] << 8) & 0xFF00);
addr |= ((bytes[2] << 16) & 0xFF0000);
addr |= ((bytes[3] << 24) & 0xFF000000);
return addr;
}//这是一段byte转int代码,下面的程序调用了,一并贴上。
在OnInitDialog()中打开注册表,也就是我希望能在程序一开始就读取上次的记录。
//打开 if (RegOpenKeyEx(HKEY_CURRENT_USER, SubKeyName, 0, KEY_ALL_ACCESS, &hKey) != ERROR_SUCCESS){RegCreateKey(HKEY_CURRENT_USER, _T("Software\\my Application\\Settings"), &hKey);//如果打开不成功就创建一个printf("Error: Regedit cannot be opened! ");}else{//读原来的键值 /*Buffer = sizeof(yzdgeshu);if (RegQueryValueEx(hKey, ValueName, 0, NULL, (BYTE *)&yzdgeshu, &Buffer) != ERROR_SUCCESS)*/Buffer = sizeof(ValueData);if (RegQueryValueEx(hKey, ValueName, 0, NULL, ValueData, &Buffer) != ERROR_SUCCESS){//不存在 yzdgeshu = 0;}else{//存在 yzdgeshu = bytesToInt(ValueData); }}
接着在设置预置点之后。将信息保存至注册表:
DWORD temp = yzdgeshu;if (RegSetValueEx(hKey, ValueName, 0, REG_DWORD, (LPBYTE)&temp, sizeof(DWORD)) != ERROR_SUCCESS){printf("Error: Change Value failed ");RegCloseKey(hKey);}//将预置点信息保存到temp,再写入到valuename的键中
代码很简单好用:包含了打开,创建,读取,存储四个操作。
参考了这两篇文章:
http://liuleijsjx.iteye.com/blog/767246
http://blog.sina.com.cn/s/blog_4ac0a0d30100e3vg.html
一个小尾巴:为了防止预置点的累增,我设置了一个按钮清空预置点信息。
另一个小尾巴:在开始搜索框键入【regedit】命令,然后按回车键,可以查到注册表信息
阅读全文
0 0
- mfc中注册表的使用
- MFC的注册表操作—CRegKey类的使用
- MFC的注册表操作—CRegKey类的使用
- MFC的注册表操作—CRegKey类的使用
- MFC对注册表的操作
- MFC 操作注册表的问题
- MFC对注册表的操作
- 【MFC】:MFC中列表的使用
- MFC设置注册表中服务器信息
- MFC中根据注册表获取串口
- MFC中如何将应用程序的配置信息保存到注册表中(一)
- MFC中如何将应用程序的配置信息保存到注册表中(二)
- VB中使用系统注册表,DOS的使用简介
- MFC中对话框的使用
- MFC中listctrl的使用
- MFC中timer 的使用
- MFC中指针的使用
- MFC中定时器的使用
- 文本溢出省略显示效果
- (编译-链接)-C语言学习笔记1
- 一个前端的爱情之路
- Snowflake Snow Snowflakes 相同的雪花
- 我以后再也不会这样了
- mfc中注册表的使用
- uwp跟随系统主题颜色
- 初探gulp
- python numpy库中的数据存取和函数
- c语言的union和struct
- 从mysql查询菜单表用java生成菜单树
- 算法提高 棋盘多项式
- STM32单片机和MATLAB的USB串口通信,运行MATLAB时STM32就出现复位的问题的解决方法。
- swjtu2382(Paint Box)