win32 注册表操作

创建键 RegCreateKeyEx

int SetRecordVideoSavedDays(int newSavedDays)2 {3     HKEY hSubKey = NULL;4     LONG lRet    = 0;5     DWORD dwType = 0;6     int iRet     = 0;7     8     do 9     {10         if (newSavedDays < 0)11         {12             printf("error: input negative number\n");13             break;14         }15         lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",16                                 0, NULL, REG_OPTION_NON_VOLATILE, 17                                 KEY_ALL_ACCESS, NULL, &hSubKey, NULL);       18         if (ERROR_SUCCESS != lRet)19         {20             printf("Create Reg failed\n");21             break;22         }23         24         lRet = RegSetValueEx(hSubKey, "VideoSavedDays", 0, REG_DWORD, (BYTE*)&newSavedDays, sizeof(newSavedDays));25         if (ERROR_SUCCESS != lRet)26         {27             printf("Set reg value VideoSavedDays failed\n");28             break;29         }30         31         iRet = (int)newSavedDays;32     } while (0);33     34     if(NULL != hSubKey)35     {36         RegCloseKey(hSubKey);37         hSubKey = NULL;38     }39   40     41     return iRet;42 }43 44 // parameter1: out, save video saved path45 // parameter2: in, save path length46 BOOL GetRecordVideoSavedPath(char *pchPath,int pathBufLen)47 {48     HKEY hSubKey    = NULL;49     LONG lRet       = 0;50     DWORD dwType    = 0;51     DWORD dwPathLen = pathBufLen;52     BOOL bRet       = FALSE;53     54     do 55     {56         lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 57                             "SOFTWARE\\Cloudsoar 3C\\ServerInfo",58                             0, KEY_READ, &hSubKey);59         if (ERROR_SUCCESS != lRet)60         {61             printf("Open reg value VideoSavedPath failed\n");62             break;63         }64         65         lRet = RegQueryValueEx(hSubKey, "VideoSavedPath", 66                                 0, &dwType, (LPBYTE)pchPath, &dwPathLen);67         if (ERROR_SUCCESS != lRet)68         {69             printf("Query reg value VideoSavedPath failed\n");70             break;71         }72         73         bRet = TRUE;74         75     } while (0);76     77     RegCloseKey(hSubKey);78   79     return bRet;80 }81 82 BOOL SetRecordVideoSavePath(char *pchNewPath)83 {84     HKEY hSubKey  = NULL;85     LONG lRet     = 0;86     DWORD dwType  = 0;87     DWORD dwState = 0;88     BOOL bRet     = FALSE;89 90     do 91     {92         if (NULL == pchNewPath)93         {94             printf("error: input negative new path\n");95             break;96         }97         lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",98             0, NULL, REG_OPTION_NON_VOLATILE, 99             KEY_ALL_ACCESS, NULL, &hSubKey, &dwState);       
100         if (ERROR_SUCCESS != lRet)
101         {
102             printf("Create Reg VideoSavedPath failed\n");
103             break;
104         }
105         
106         lRet = RegSetValueEx(hSubKey, "VideoSavedPath", 0, REG_SZ, (PBYTE)pchNewPath, sizeof(pchNewPath));
107         if (ERROR_SUCCESS != lRet)
108         {
109             printf("Set reg value VideoSavedPath failed\n");
110             break;
111         }
112 
113         bRet = TRUE;
114     } while (0);
115 
116     RegCloseKey(hSubKey);
117 
118     return bRet;
119 }

函数原型

 1 LONG RegCreateKeyEx(2 HKEY hKey, // handle to open key3 LPCTSTR lpSubKey, // subkey name4 DWORD Reserved, // reserved5 LPTSTR lpClass, // class string6 DWORD dwOptions, // special options7 REGSAM samDesired, // desired security access8 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // inheritance9 PHKEY phkResult, // key handle
10 LPDWORD lpdwDisposition // disposition value buffer
11 );

参数说明

1 hKey:   要打开键的句柄或以下预定义句柄2 HKEY_CLASSES_ROOT3 HKEY_CURRENT_USER4 HKEY_LOCAL_MACHINE5 HKEY_USERS6 lpSubKey:   指向一个用于定义子键路径的字符串7 Reserved,dwOptions,samDesired:   置08 lpClass,lpSecurityAttributes:   置NULL9 phkResult:   用于接收键句柄
10 lpdwDisposition:   接收的相关信息,取值如下
11 REG_CREATED_NEW_KEY   创建成功
12 REG_OPENED_EXISTING_KEY    键已存在

打开键 RegOpenKeyEx
函数原型

1 LONG RegOpenKeyEx(
2     HKEY hKey, // handle to open key
3     LPCTSTR lpSubKey, // subkey name
4     DWORD ulOptions, // reserved
5     REGSAM samDesired, // security access mask
6     PHKEY phkResult // handle to open key
7 );

参数说明

1 hKey:     要打开键的句柄或以下预定义句柄
2 HKEY_CLASSES_ROOT
3 HKEY_CURRENT_USER
4 HKEY_LOCAL_MACHINE
5 HKEY_USERS
6 lpSubKey:   指向一个用于定义子键路径的字符串
7 ulOptions:   保留位,置0
8 samDesired:   打开键后键的操作权限
9 phResult:   接收打开的键的句柄

修改/添加键值 RegSetValueEx
函数原型

1 LONG RegSetValueEx(
2     HKEY hKey, // handle to key
3     LPCTSTR lpValueName, // value name
4     DWORD Reserved, // reserved
5     DWORD dwType, // value type
6     CONST BYTE *lpData, // value data
7     DWORD cbData // size of value data
8 );

参数说明

1 hKey:   打开键的句柄或以下预定义句柄2 HKEY_CLASSES_ROOT3 HKEY_CURRENT_USER4 HKEY_LOCAL_MACHINE5 HKEY_USERS6 lpValueName:   键值的名称7 Reserved:   保留位,置08 dwType:   键值的类型9 lpData:   键值
10 cbData:   键值数据长度

 

转载于:https://www.cnblogs.com/zhiyewang/p/5209005.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程间通信(一)

1 消息队列 消息队列是消息的链接表 , 存放在内核中并由消息队列标识符标识。 m s g g e t用于创建一个新队列或打开一个现存的队列。 m s g s n d用于将新消息添加到队列尾端。 m s g r c v用于从队列中取消息。 调用的第一个函数通常是m s g g e t&#xff0c;其功能是打开一…

Asp.NET Core一个接口的多个实现如何基于当前HTTP请求注册

前言假设我们有三个Service类实现了同一接口&#xff0c;示例代码如下&#xff1a;public interface IService { } public class ServiceA : IService { } public class ServiceB : IService { } public class ServiceC : IService { }我们希望在运行时使用依赖注入指定其具体…

Loadrunner 接口测试方法

其实无论用那种测试方法&#xff0c;接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文&#xff0c;服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端&#xff0c;客户端接收应答报文这一个过程。一、基于通用http/html请求大家都知道LoadRun…

React Native之react-native bundle --platform android --dev false --entry-file index.js --bundle失败

1 问题 react native项目在assert目录下面生成index.android.bundle文件用下面的命令 react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/r…

pytorch forward_【Pytorch部署】TorchScript

TorchScript是什么&#xff1f;TorchScript - PyTorch master documentation​pytorch.orgTorchScript是一种从PyTorch代码创建可序列化和可优化模型的方法。任何TorchScript程序都可以从Python进程中保存&#xff0c;并加载到没有Python依赖的进程中。我们提供了一些工具来增量…

兼容ie8 rgba()用法

今天遇到了一个问题&#xff0c;要在一个页面中设置一个半透明的白色div。这个貌似不是难题&#xff0c;只需要给这个div设置如下的属性即可&#xff1a; background: rgba(255,255,255,.1); 但是要兼容到ie8。这个就有点蛋疼了。因为ie8不支持rgba()函数。下面我们总结一下rgb…

hdu水仙花

水仙花数Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 11 Accepted Submission(s) : 6 Problem Description 春天是鲜花的季节&#xff0c;水仙花就是其中最迷人的代表&#xff0c;数学上有个水仙花数&#xff…

python中的标识符能不能使用关键字_Python中的标识符不能使用关键字

Python中的标识符不能使用关键字答&#xff1a;√智慧职教: 检查客室座椅外观良好&#xff0c;确认?无破损答&#xff1a;坐垫 靠背关于投标报价时综合单价的确定&#xff0c;下列做法中正确的是()答&#xff1a;以项目特征描述为依据确定综合单价城市总体规划调查时&#xff…

C# WPF实战项目升级了

概述之前用Caliburn.Micro搭建的WPF实战项目&#xff0c;CM框架选用了 3.0.3&#xff0c;实际上CM框架目前最新版已经到4.0。173了&#xff0c;所有很有必须升级一下项目了. 本来打算把平台框架也直接升级到.NET 6 的&#xff0c;但是项目里面很多库不支持最新的平台版本&#…

Android之通过ContentResolver获取手机图片和视频的路径和生成缩略图和缩略图路径

1 问题 获取手机所有图片和视频的路径和生成图片和视频的缩略图和缩略图路径 生成缩略图我们用的系统函数 public static Bitmap getThumbnail(ContentResolver cr, long origId, int kind, Options options) {throw new RuntimeException("Stub!");} 调用如下 M…

ArcGIS Engine开发模板及C#代码

目 录 1. 模板 2. 代码 1. 模板 以下为AE开发软件自带的模板及代码,开发工具为VS 2012+ArcGIS Engine 10.2。 2. 代码 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; us…

为何解析浏览器地址参数会为null_request 包中出现 DNS 解析超时的探究

事情的起因是这样的&#xff0c;公司使用自建 dns 服务器&#xff0c;但是有一个致命缺陷&#xff0c;不支持 ipv6 格式的地址解析&#xff0c;而 node 的 DNS 解析默认是同时请求 v4 和 v6 的地址的&#xff0c;这样会导致偶尔在解析 v6 地址的时候出现超时。本文链接地址 htt…

高级iOS面试题

非标准答案 2 1: 类方法是可以直接通过类名直接调用&#xff0c;无需进行实例化对象。类方法是以开头2. 实例方法&#xff0c;需要显示实例化对象&#xff0c;为对象分配堆栈空间&#xff0c;并通过对象实例调用实例方法3. RUNTIME 是在程序运行过程动态对实例对象进行操作&…

dotTrace 6.1帮你理解SQL查询如何影响应用性能

dotTrace是JetBrains公司旗下的一款.NET应用程序性能瓶颈检测工具。该工具是ReSharper旗舰版的一部分&#xff0c;也可以单独安装。近日&#xff0c;dotTrace 6.1发布&#xff0c;主要增加了人们期待已久的SQL查询性能分析&#xff0c;开发人员可以通过它获得特定查询的执行时间…

React Native之函数作为参数传递给另外一个函数去调用

1 用法 我们一般喜欢把js里面的函数作为参数传递给另外一个函数,然后再调用这个函数,有点像C语言里面的函数指针 2 代码测试 写了一个函数,2个参数分别是函数,然后更具数据决定调用哪个函数 /*** Sample React Native App* https://github.com/facebook/react-native** form…

STL—list

前面我们分析了vector&#xff0c;这篇介绍STL中另一个重要的容器list list的设计 list由三部分构成&#xff1a;list节点、list迭代器、list本身 list节点 list是一个双向链表&#xff0c;所以其list节点中有前后两个指针。如下&#xff1a; // list节点 template <typenam…

C#语法糖 Null 条件运算符 【?.】

例子比如说:我们有一个UserInformation类public class UserInformation{ public string Name { get; set; }public List<string> Address { get; set; }}有下面一段代码,我们获取张三的第一个地址static void Main(string[] args){UserInformation user new UserInforma…

用单片机测量流体流速的_流量测量的主要方法

电磁流量计由于流量检测的复杂性和多样性&#xff0c;流量检测的方法非常多&#xff0c;常用于工业生产中的有10多种。流量测量与仪表可以分为测量瞬时流量和总流量两类。生产过程中流量大多作为监控参数&#xff0c;测量的是瞬时流量&#xff0c;但在物料平衡和能源计量的贸易…

C#帮助控件HelpProvider的使用

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace 帮助控件的使用 {public partial class Form1 : Form{public Form1(…

mysql申请审核系统_Mysql审核工具archery

Mysql审核工具archery系统&#xff1a;Centos6.8ip:192.168.122.150安装Python和virtualenv编译安装[rootwww ~]# yum install wget gcc make zlib-devel openssl openssl-devel[rootwww src]# wget "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz"[…