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 ...
随机推荐
- metasploit framework(八):snmp扫描,暴力破解
snmp扫描linux 设置相关参数,这里使用的默认字典,你可以自己制定字典. run 然后使用枚举模块 设置相关参数 run,详细的信息就枚举出来了 snmp扫描windows 先枚举用户 设置目标 ...
- break
public class b { public static void main(String[] args) { int i=0; for(;i<=10;i++){ if (i&g ...
- Oracle怎么修改字段类型
转载:https://www.2cto.com/database/201710/689523.html 有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管 ...
- Linux 字符设备驱动及一些简单的Linux知识
一.linux系统将设备分为3类:字符设备.块设备.网络设备 1.字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流的设备,常见 ...
- 33. Search in Rotated Sorted Array (Array;Divide-and-Conquer)
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- 【Linux 进程】fork父子进程间共享数据分析
之前我们通过fork()函数,得知了父子进程之间的存在着代码的拷贝,且父子进程都相互独立执行,那么父子进程是否共享同一段数据,即是否存在着数据共享.接下来我们就来分析分析父子进程是否存在着数据共享. ...
- polymorphism多态
[概念] 方法名相同,具体操作根据类不同. eg 有open()方法的ebook, kindle 都会被打开 eg 动物叫声不同 inheritance:只有superclass subclass都有 ...
- 再遇ibatisNet
11年在Mr刘的带领下第一次接触ibatisnet ,当时Mr刘很详细的很讲了xml里的写法还有配置文件之类的,但是随着时间越来越久远.很多东西都开始淡忘了. 如今,再次和它相遇,依然觉得很亲切,虽然 ...
- Dockerfile里指定执行命令用ENTRYPOING和用CMD有何不同?
结论:运行时机不太一样. RUN是在Build时运行的,先于CMD和ENTRYPOINT.Build完成了,RUN也运行完成后,再运行CMD或者ENTRYPOINT. ENTRYPOINT和CMD的不 ...
- python 字符串 列表 字典 常用方法
今天学习内容如下: 1.学习昨天练习题目的解题新方法 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 ''' count = 0 while count < 10: coun ...