创建键 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

win32 注册表操作相关推荐

  1. win32 注册表操作API

    前言 注册表是windows提供给开发者存储轻量级数据的地方.我们可以通过键入regedit打开注册表. 我们首先像HKEY_CURRENT_USER\Software\\QQBrowser写入一个v ...

  2. window注册表操作手册

    环境: window 10企业版 .netcore 3.1 vs 2019 16.4.5 控制台程序以管理员身份运行 参照: Windows注册表内容详解 C#操作注册表 一.window注册表简介 ...

  3. delphi 注册表操作(读取、添加、删除、修改)完全手册

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...

  4. delphi 注册表操作之(读取、添加、删除、修改)

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...

  5. RegistryCallback routine(CmRegisterCallback 注册表操作监控介绍)

    RegistryCallback routine 过滤器驱动程序的常规RegistryCallback可以监视,阻止或修改一个注册表操作. 句法 C ++ NTSTATUS CmRegisterCal ...

  6. 注册表操作(VC_Win32)

    注册表操作(VC_Win32) 数据类型 注册表的数据类型主要有以下四种: 显示类型(在编辑器中)  数据类型   说明 REG_SZ    字符串   文本字符串 REG_MULTI_SZ      ...

  7. Windows注册表操作基础代码

    Windows注册表操作基础代码   Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<assert.h> #include< ...

  8. win32api window2con 模块 -系统注册表操作

    #!/usr/bin/python # -*- coding: UTF-8 -*-#encoding=utf-8 #win32api #注册表操作# 注册表项 # HKEY_CLASSES_ROOT ...

  9. Windows核心编程_注册表操作和小练习程序关联

    大家有没有见过就是当我们下载一个软件比如视频播放器 下载之后我们电脑上的视频文件图标都变成了这个视频播放器的图标,然后打开时也是默认调用此视频播放器来播放 下面就给大家介绍如何在Windows平台上实 ...

最新文章

  1. adjango 基本的使用
  2. r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
  3. c语言指针用法有哪些
  4. 1090 Highest Price in Supply Chain (25)
  5. git 报错:Please make sure you have the correct access rights and the repository exists
  6. oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里
  7. mysql支持arm64架构吗_ARM架构下面安装mysql5.7.22
  8. Spring-Boot 整合Dubbo 解决@Reference 注解为null情况
  9. 《Mahout算法解析与案例实战》一一2.3 测试安装
  10. Numpy系列(三)常用random随机函数汇总
  11. vue实现上传图片并预览效果 html+css+js
  12. 春节过后,外贸人如何快速抓住采购旺季,高效跟进客户
  13. 无人深空java修改器,无人深空next存档修改-无人深空next存档修改器下载v1.5.0最新版-西西软件下载...
  14. 可编程、变频调速与触摸屏实验实训装置
  15. android checkbox分页问题分析
  16. 洛谷【入门4】数组 P2615 [NOIP2015 提高组] 神奇的幻方
  17. $.closest()
  18. 微信公众号jsapi支付
  19. BAT实现文件下载功能
  20. 逆向分析系列——查壳侦壳工具

热门文章

  1. kakfa中的ISR解释
  2. 论文信息系统项目管理的进度管理
  3. 后端技术:Java程序员常用的11个API,你都知道吗?
  4. MVC、 MVP、 MVVM之间的区别
  5. python【进阶】4.文本和字节序列
  6. Android 四大组件之 Activity
  7. JS:封装函数判断数据类型
  8. 禁止sethc.exe运行 防止3389的sethc后门
  9. 在Leangoo里怎么设置看板周期?
  10. CentOS下为Web网站性能做测试