win32 注册表操作
创建键 RegCreateKeyEx
int SetRecordVideoSavedDays(int newSavedDays)
{
HKEY hSubKey = NULL;
LONG lRet = ;
DWORD dwType = ;
int iRet = ; do
{
if (newSavedDays < )
{
printf("error: input negative number\n");
break;
}
lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",
, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hSubKey, NULL);
if (ERROR_SUCCESS != lRet)
{
printf("Create Reg failed\n");
break;
} lRet = RegSetValueEx(hSubKey, "VideoSavedDays", , REG_DWORD, (BYTE*)&newSavedDays, sizeof(newSavedDays));
if (ERROR_SUCCESS != lRet)
{
printf("Set reg value VideoSavedDays failed\n");
break;
} iRet = (int)newSavedDays;
} while (); if(NULL != hSubKey)
{
RegCloseKey(hSubKey);
hSubKey = NULL;
} return iRet;
} // parameter1: out, save video saved path
// parameter2: in, save path length
BOOL GetRecordVideoSavedPath(char *pchPath,int pathBufLen)
{
HKEY hSubKey = NULL;
LONG lRet = ;
DWORD dwType = ;
DWORD dwPathLen = pathBufLen;
BOOL bRet = FALSE; do
{
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Cloudsoar 3C\\ServerInfo",
, KEY_READ, &hSubKey);
if (ERROR_SUCCESS != lRet)
{
printf("Open reg value VideoSavedPath failed\n");
break;
} lRet = RegQueryValueEx(hSubKey, "VideoSavedPath",
, &dwType, (LPBYTE)pchPath, &dwPathLen);
if (ERROR_SUCCESS != lRet)
{
printf("Query reg value VideoSavedPath failed\n");
break;
} bRet = TRUE; } while (); RegCloseKey(hSubKey); return bRet;
} BOOL SetRecordVideoSavePath(char *pchNewPath)
{
HKEY hSubKey = NULL;
LONG lRet = ;
DWORD dwType = ;
DWORD dwState = ;
BOOL bRet = FALSE; do
{
if (NULL == pchNewPath)
{
printf("error: input negative new path\n");
break;
}
lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",
, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hSubKey, &dwState);
if (ERROR_SUCCESS != lRet)
{
printf("Create Reg VideoSavedPath failed\n");
break;
} lRet = RegSetValueEx(hSubKey, "VideoSavedPath", , REG_SZ, (PBYTE)pchNewPath, sizeof(pchNewPath));
if (ERROR_SUCCESS != lRet)
{
printf("Set reg value VideoSavedPath failed\n");
break;
} bRet = TRUE;
} while (); RegCloseKey(hSubKey); return bRet;
}
函数原型
LONG RegCreateKeyEx(
HKEY hKey, // handle to open key
LPCTSTR lpSubKey, // subkey name
DWORD Reserved, // reserved
LPTSTR lpClass, // class string
DWORD dwOptions, // special options
REGSAM samDesired, // desired security access
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // inheritance
PHKEY phkResult, // key handle
LPDWORD lpdwDisposition // disposition value buffer
);
参数说明
hKey: 要打开键的句柄或以下预定义句柄
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey: 指向一个用于定义子键路径的字符串
Reserved,dwOptions,samDesired: 置0
lpClass,lpSecurityAttributes: 置NULL
phkResult: 用于接收键句柄
lpdwDisposition: 接收的相关信息,取值如下
REG_CREATED_NEW_KEY 创建成功
REG_OPENED_EXISTING_KEY 键已存在
打开键 RegOpenKeyEx
函数原型
LONG RegOpenKeyEx(
HKEY hKey, // handle to open key
LPCTSTR lpSubKey, // subkey name
DWORD ulOptions, // reserved
REGSAM samDesired, // security access mask
PHKEY phkResult // handle to open key
);
参数说明
hKey: 要打开键的句柄或以下预定义句柄
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey: 指向一个用于定义子键路径的字符串
ulOptions: 保留位,置0
samDesired: 打开键后键的操作权限
phResult: 接收打开的键的句柄
修改/添加键值 RegSetValueEx
函数原型
LONG RegSetValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
DWORD Reserved, // reserved
DWORD dwType, // value type
CONST BYTE *lpData, // value data
DWORD cbData // size of value data
);
参数说明
hKey: 打开键的句柄或以下预定义句柄
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpValueName: 键值的名称
Reserved: 保留位,置0
dwType: 键值的类型
lpData: 键值
cbData: 键值数据长度
win32 注册表操作的更多相关文章
- 注册表操作 Microsoft.Win32.Registry与RegistryKey类
一.注册表操作简介 Registry 类,RegistryKey 类提供了操作注册表的接口 RegistryValueKind:用于指定操作注册表的数据类型 一.注册表巢 在注册表中,最上面的节点是注 ...
- delphi 注册表操作(读取、添加、删除、修改)完全手册
DELPHI VS PASCAL(87) 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操 ...
- CRegKey 注册表操作
CRegKey 注册表操作 标签: accessnulluserpathbyteie 2011-11-03 13:55 3477人阅读 评论(0) 收藏 举报 分类: win32(7) 1.简介 ...
- C# 我的注册表操作类
using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; using Syst ...
- Delphi的注册表操作
转帖:Delphi的注册表操作 2009-12-21 11:12:52 分类: Delphi的注册表操作 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创 ...
- C#注册表操作类--完整优化版
using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; namespace ...
- C#注册表操作类(完整版) 整理完整
/// <summary> /// 注册表基项静态域 /// /// 主要包括: /// 1.Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 /// ...
- 【读书笔记】C#高级编程 第二十四章 文件和注册表操作
(一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...
- MFC学习 文件操作注册表操作
c读写文件 void CFileView::OnRead() { FILE *pFile = fopen("1.txt", "r"); /*char ch[10 ...
随机推荐
- db2start提示SQL5043,关闭连接终端tty
db2 V10.3启动的时候提示: 问题1: db2start执行后提示: SQL1072C The database manager resources are in an inconsisten ...
- django models实际操作中遇到的一些问题
问题1.将主键id改成自动生成的python3 manage.py migrate时报下面的错误 django.db.utils.InternalError: (1091, "Can't D ...
- FileReader.FileWriter 执行文本复制
//导包动作必须做,否则会出现大片错误提示 import java.io.*; class FileReaderDemo { publicstatic void main(String[] args) ...
- NumPy 高级索引
NumPy 高级索引 NumPy 比一般的 Python 序列提供更多的索引方式.除了之前看到的用整数和切片的索引外,数组可以由整数数组索引.布尔索引及花式索引. 整数数组索引 以下实例获取数组中(0 ...
- springboot找不到主类
在学习springboot的时候,前几天写了一个demo,正常运行,一点问题也没有.今天运行不起来了. 报错:找不到主类 解决方案: Project->Clean->选中项目,点击Clea ...
- Codeforces Beta Round #31 (Div. 2, Codeforces format)
Codeforces Beta Round #31 (Div. 2, Codeforces format) http://codeforces.com/contest/31 A #include< ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J. Ka Chang(树状数组+分块)
Given a rooted tree ( the root is node 1 ) of N nodes. Initially, each node has zero point. Then, yo ...
- Django中的forms一些小点
1.默认情况下,chrom浏览器会提前对我们的form表单中的数据做校验,如果不想让chrom浏览器给我们做校验,则只需要按照下面的方式处理就可以了 <form method="pos ...
- python------栈和队列的实现
一.神马是栈 古有粮仓,即为栈.粮仓的特点就是最后放进去的谷粒,放在最上面.打仗行军,取粮是怎么取最快?肯定是最先取最上面的!栈这一种常用到的数据结构就是这种特点:后进先出(Last In First ...
- EasyUI Dialog 对话框 关闭事件
在 $('#×××').dialog('close'); 执行后触发 $(function(){ $("#titledialos").dialog({ onClose: fun ...