WINDOWS注册表

根键:注册表被划分为称为根键的5个顶层节。有时,术语HKEY和储巢也被使用。
每一个根键有一个特定的目的,我们接下来会逐一解释。
子键: 一个子键就像是一个文件夹中的子文件夹。
值项:一个值项是一个配对的名字和值。
值或数据 :值或数据是存储在注册表项中的数据。

注册表被划分为下面5个根键:
HKEY_LOCAL_MACHINE(HKLM)保存对本地机器全局设置。HKEY_CURRENT_USER ( HKCU)保存当前用户特定的设置。HKEY_CLASSES_ROOT保存定义的类型信息。
HKEY_CURRENT_CONFIG保存关于当前硬件配置的设置,特别是与当前和标准配置之间不同的部分。
HKEY_USERS定义默认用户、新用户和当前用户的配置。

两个最常用的根键是HKLM和HKCU(这些键通常通过它们的缩写来引用)。一些键实际是虚拟键值,提供一种引用底层注册表信息的方式。例如,HKEY_CURRENT_USER键实际上存储在HKEY_USERS\SID中,这里SID是当前登录用户的安
全描述符。例如,一个常用的子键,
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\windows \CurrentVersion\Run,包含一系列值,这些值列举了当一个用户登录时被自动启动的可执行程序。根键是HKEY_LOCAL_MACHINE,它保存
了SOFTWARE、Microsoft、 windows、currentVersion以及Run子键。

自启动程序检测
Autoruns工具列举了系统启动时会自动运行的程序

注册表操作函数

RegOpenKeyEx 打开一个注册表进行编辑和查询
RegSetValueEx 添加一个新值到注册表,并设置它的数值
RegGetValue 返回注册表中一个值项的数值。

以下为创建一个注册表项的代码,需要管理员权限运行。

// test.cpp : 定义控制台应用程序的入口点。
//

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
	HKEY Key = NULL;
	DWORD dwDisposition = 0; //用于接收一个注册表项是新建还是打开

	int errorCode = RegCreateKeyEx(
		HKEY_LOCAL_MACHINE,   //要打开的根键 /储巢
		L"system\\yxp",	      //子键名
		0,					  //必须为0				  
		NULL,				  //忽略此参数
		REG_OPTION_VOLATILE,  //系统重启后该项消失,如果想要长久的保存使用REG_OPTION_NOT_VOLATILE
		KEY_ALL_ACCESS,				  //获取所有权限
		NULL,// 使用默认的安全描述符, NULL 子进程不可以继承该句柄
		&Key,                 //返回的注册表项句柄
		&dwDisposition        //返回值说明了是创建还是打开一个注册表项
		);
	if (ERROR_SUCCESS != errorCode)
	{

		printf("创建指定注册表项失败,错误码:%d", errorCode);
		goto exit;
	}
	else
	{
		if (dwDisposition == REG_CREATED_NEW_KEY)
			printf("创建一个新的注册表项");

		if (dwDisposition == REG_OPENED_EXISTING_KEY)
			printf("打开一个注册表项");
	}

	DWORD dwValue = 29;
	RegSetValueEx(Key, TEXT("age"), NULL, REG_DWORD, (const BYTE*)&dwValue, sizeof(dwValue));

exit:

	if (Key)
	{
		RegCloseKey(Key);
	}
	getchar();
	return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值