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
win32 注册表操作相关推荐
- win32 注册表操作API
前言 注册表是windows提供给开发者存储轻量级数据的地方.我们可以通过键入regedit打开注册表. 我们首先像HKEY_CURRENT_USER\Software\\QQBrowser写入一个v ...
- window注册表操作手册
环境: window 10企业版 .netcore 3.1 vs 2019 16.4.5 控制台程序以管理员身份运行 参照: Windows注册表内容详解 C#操作注册表 一.window注册表简介 ...
- delphi 注册表操作(读取、添加、删除、修改)完全手册
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- delphi 注册表操作之(读取、添加、删除、修改)
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- RegistryCallback routine(CmRegisterCallback 注册表操作监控介绍)
RegistryCallback routine 过滤器驱动程序的常规RegistryCallback可以监视,阻止或修改一个注册表操作. 句法 C ++ NTSTATUS CmRegisterCal ...
- 注册表操作(VC_Win32)
注册表操作(VC_Win32) 数据类型 注册表的数据类型主要有以下四种: 显示类型(在编辑器中) 数据类型 说明 REG_SZ 字符串 文本字符串 REG_MULTI_SZ ...
- Windows注册表操作基础代码
Windows注册表操作基础代码 Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<assert.h> #include< ...
- win32api window2con 模块 -系统注册表操作
#!/usr/bin/python # -*- coding: UTF-8 -*-#encoding=utf-8 #win32api #注册表操作# 注册表项 # HKEY_CLASSES_ROOT ...
- Windows核心编程_注册表操作和小练习程序关联
大家有没有见过就是当我们下载一个软件比如视频播放器 下载之后我们电脑上的视频文件图标都变成了这个视频播放器的图标,然后打开时也是默认调用此视频播放器来播放 下面就给大家介绍如何在Windows平台上实 ...
最新文章
- adjango 基本的使用
- r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
- c语言指针用法有哪些
- 1090 Highest Price in Supply Chain (25)
- git 报错:Please make sure you have the correct access rights and the repository exists
- oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里
- mysql支持arm64架构吗_ARM架构下面安装mysql5.7.22
- Spring-Boot 整合Dubbo 解决@Reference 注解为null情况
- 《Mahout算法解析与案例实战》一一2.3 测试安装
- Numpy系列(三)常用random随机函数汇总
- vue实现上传图片并预览效果 html+css+js
- 春节过后,外贸人如何快速抓住采购旺季,高效跟进客户
- 无人深空java修改器,无人深空next存档修改-无人深空next存档修改器下载v1.5.0最新版-西西软件下载...
- 可编程、变频调速与触摸屏实验实训装置
- android checkbox分页问题分析
- 洛谷【入门4】数组 P2615 [NOIP2015 提高组] 神奇的幻方
- $.closest()
- 微信公众号jsapi支付
- BAT实现文件下载功能
- 逆向分析系列——查壳侦壳工具