《解读window核心编程》 之 注冊表

1 注冊表的作用及组织形式

Windows系统使用注冊表来存储系统和应用程序配置数据。非常多系统和应用程序重要的配置的信息都存储在注冊表中。

注冊表是一种以树型结构组织的数据库。树的每个节点称

作键(key),每一个节点能够包括若干子键,键能够存储数据,存储的数据称作键值。一个键不管其是否有子键,都能够有键值。一个键能够有非常多个键值,每一个键值都有一个名字。包括若干数据。所包括的数据类型能够有非常多种,表10.1列出了注冊表数据类型。

系统自带的注冊表编辑器(regedit.exe)能够列举、查看、改动、添加、删除键和子键、键值。

2.键、子键、键属性及键值的相关操作

在对注冊表键进行操作前,须要使用API函数RegOpenKey、RegOpenKeyEx打开键。

在打开键后。假设须要创建新的键,使用API函数RegCreateKey、RegCreateKeyEx。

这两组函数都将返回键的句柄(HKEY类型)。在得到键的句柄后,能够对键进行操作。

创建子键使用前述RegCreateKey、Reg CreateKeyEx API函数;删除键使RegDeleteKey、RegDeleteKeyEx函数,RegQueryInfoKey API函数获取键多方面的信息,包含键值、子键等;获取和设置键值还能够使用RegGetValue、RegQueryValueEx、RegSetValueEx、RegQueryMultipleValues等函数;删除指定的键值使用RegDeleteValue函数;假设须要遍历子键和键值,能够使用API函数RegEnumKeyEx和RegEnumValue函数。

3 列举注冊表项及键值

遍历子键和键值能够使用API函数RegEnumKeyEx和RegEnumValue函数。RegQueryInfoKey。RegEnumKeyEx和RegEnumValue相配合能够完毕对一个键的全部子键及键值的列举。

4 通过注冊表设置一个自启动的程序

程序的自启动有非常多种方法。注冊表是当中最经常使用的一种,有多个键具有这样的功能。最经常使用的有:HKEY_LO CAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,仅仅需设置REG二SZ类型的键值,将值设置为程序的路径就可以使用程序在系统启动时自启动。

假设仅仅须要在下次系统启动时自启动一次,那么能够设置键HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce的键值。

5 设置随程序启动而启动的调试器(不论什么程序)

本节将介绍怎样在程序启动时载入调试器(读者也能够用于设置自启动程序)。“HKEY_LOCAL_MACHINE\SOFTWAREYMicrosoft,\Windows NT\CurrentVersion\Image File

Execution Options”下的子键能够用于指定启动调试器。

如须要调试os_info.exe,在“Image FileExecution Options”键下创建子键“os_info.exe”。然后创建键值,名为“Debugger”,类型为REG_SZ。数据为启动调试器的命令行。这里指向Windbg,如:“C:\Program Files\Debugging Tools forWindows\windbg.exe”(能够是不论什么可执行文件,比方notepad.exe。在载入键名称程序模块时,会首先启动“Debugger”键值指定的应用程序,并以键名指向的可执行程序为參数)。执行os_info.exe就会启动Windbg执行调试。

6.指定程序崩溃实时调试器

能够通过注冊表指定实时调试器,比方指定为WinDBG或OllyDBG等调试器。

指定实时调试器的方法为指定注冊表键“HKEY LOCAL MACHINE\SOFTWARE\Microsoft\ Windows

NT\CurrentVersion\AeDebug”的“Debugger”键值。

时间: 2024-07-29 16:05:00

《解读window核心编程》 之 注冊表的相关文章

《解读window核心编程》 之 字符和字符串处理方式

推荐的字符和字符串处理方式 開始将文本字符串想象为字符的数组,而不是 char 或字节的数组. 用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串. 用明白的数据类型(如 BYTE 和 PBYTE )来表示字节,字节指针和数据缓冲区. 用 TEXT 或 _T 宏来表示字面量字符和字符串.但为了保持一致性和更好的可读性,请避免两者混用: 运行全局替换(比如用 PTSTR 替换 PSTR ) ; 改动与字符串有关的计算.比如,函数常常希望我们传给它缓冲区打小的字符数.而不是字节数.

C# 系统应用之注冊表使用具体解释

在平时做项目时,我们有时会遇到注冊表的操作,比如前面我们须要获取IE浏览器地址栏的信息.获取"我的电脑"地址栏输入的目录信息.USB近期使用信息等.注冊表项是注冊表的基本组织单位,它包括子表项和值条目.简言之,注冊表项相当于注冊表里的目录.它们存储计算机安装程序的信息,如颜色设置.屏幕大小.历史记录等. 举个曾经使用注冊表最多的样例:当我们玩魔兽或dota时,总须要打开"执行"->输入"regedit"打开注冊表,在HKEY_CURRENT

YII用户注冊表单的实现熟悉前台各个表单元素操作方式

模还是必须定义两个基本方法.还有部分label标签映射为汉字,假设进行表单验证,还要定义一些验证规则: <? php /* * 用户模型 * */ class user extends CActiveRecord{ //获得数据模型 public static function model($classname = __CLASS__){ return parent::model($classname); } //定义数据表名字 public function tableName(){ retu

C#注冊表操作汇总

一.注冊表基本知识 1)       结构 键->项->子项->值项(名称.类型.数据) REG_SZ         字符串 REG_BINARY    二进制 REG_DWORD    双字 2)       组成 1.HKEY_CLASSES_ROOT  定义了系统中全部文件类型标识和基本操作标识 该主键包括文件扩展名和应用程序关联的信息 主键下的子键决定怎样在资源管理器和桌面中显示该类文件及其图标 不是一个单独的分支,而仅仅是HKEY_LOCAL_MACHINE\SOFTWARE

c++ 操作注冊表

1.       注冊表简单介绍 注冊表是为Windows NT和Windows95中全部32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Windows New Technology)下无法工作,所以全部设备都通过注冊表来控制,一般这些是通过BIOS(基本输入输出系统)来控制的.在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制.16位应用程序会工作在NT或者Win95 下,它们的程序仍然会參考wi

怎样利用WordPress创建自己定义注冊表单插件

来源:http://www.ido321.com/1031.html 原文:Creating a Custom WordPress Registration Form Plugin 译文:创建一个定制的WordPress插件注冊表单 译者:dwqs 开门见山,WordPress提供了一个自己定义的注冊表单供新用户使用,或者当加入一个新用户到已经存在的WordPress网站. 可是假设你想实现一个自己定义的注冊表单而没有显示WordPress仪表盘的选项呢? 在这篇文章中.我们将学会怎么使用标签模

注冊表主键的含义

我们都知道,我们在使用电脑时.在"開始"→"执行"中输入"regedit"并单击"确定"button后,能够打开"注冊表编辑器"对话框,此时能够看见在左边的窗体中显示了注冊表的全部主键.对于Windows 2003/2000/XP 来说仅仅有五个主键.新手要想看的懂注冊表就必须了解这五个主键的指向是什么.以下我们就来一起学习下注冊表主键的详细含义. 1.HKEY_CLASSES_ROOT 该主键用于管理文件

怎样在注冊表禁用或打开windows系统右键菜单

以下是禁用右键方法: 在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下? 在右边的窗体中新建一个二进制值"NoViewContextMenu",并设值为"01 00 00 00". ? 改动后需又一次启动WINDOWS,启动后,你将不能在桌面,驱动器,目录等地方使用鼠标右键. 原文地址:https://www.cnblogs.com/llguanli/p/8

《windows核心编程系列》十八谈谈windows钩子

windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功能.所谓的指定窗体并不局限于当前进程的窗体,也能够是其它进程的窗体.当监视的某一消息到达指定的窗体时,在指定的窗体处理消息之前,钩子函数将截获此消息,钩子函数既能够加工处理该消息,也能够不作不论什么处理继续传递该消息.使用钩子是实现dll注入的方法之中的一个.其它经常使用的方法有:注冊表注入,远程线