《解读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”键值。
《解读window核心编程》 之 注冊表的更多相关文章
- 《解读window核心编程》 之 字符和字符串处理方式
推荐的字符和字符串处理方式 開始将文本字符串想象为字符的数组,而不是 char 或字节的数组. 用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串. 用明白的数据类型(如 BYTE ...
- 《解读window核心编程》 之 进程
1. 进程是执行文件的运行时形态.包括两部分:内核数据(对应内核对象).地址空间(包括执行文件代码和栈堆等动态内存). 2. 把VC的“系统-子系统”值删除掉,即不指定 ...
- c++ 操作注冊表
1. 注冊表简单介绍 注冊表是为Windows NT和Windows95中全部32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (W ...
- PLSQL Developer过期要注冊表
打开执行输入 regedit 打表注冊表 删除 HKEY_CURRENT_USER\Software\Allround Automations HKEY_CURRENT_USER\Software\M ...
- 64位Windows操作系统中的注冊表
x64系统上有x64.x86两种注冊表,记录下. 64 位Windows系统中的注冊表分为 32 位注冊表项和 64 位注冊表项.很多 32 位注冊表项与其对应的 64 位注冊表项同名. 在64位版本 ...
- YII用户注冊表单的实现熟悉前台各个表单元素操作方式
模还是必须定义两个基本方法.还有部分label标签映射为汉字,假设进行表单验证,还要定义一些验证规则: <? php /* * 用户模型 * */ class user extends CAct ...
- C# 系统应用之注冊表使用具体解释
在平时做项目时,我们有时会遇到注冊表的操作,比如前面我们须要获取IE浏览器地址栏的信息.获取"我的电脑"地址栏输入的目录信息.USB近期使用信息等.注冊表项是注冊表的基本组织单位, ...
- VC++ 读写注冊表,注冊文件图标关联
#include <string> #include <iostream> #include <Windows.h> #include <shlobj.h&g ...
- C#注冊表操作汇总
一.注冊表基本知识 1) 结构 键->项->子项->值项(名称.类型.数据) REG_SZ 字符串 REG_BINARY 二进制 REG_DWORD ...
随机推荐
- Python随笔-切片
Python为取list部分元素提供了切片操作,list[begin:end]获取list的[begin,end)区间元素. 可以用负数索引. tuple.str都是list的一种,所以也适用. 可以 ...
- canvas杂记
canvas杂记 canvas标签 <canvas width=600 height=400></canvas> //1. 拿到画布 var canvas = document ...
- JS——tab函数封装
1.为li标签添加index属性,这个属性正好就是span标签数组的index值 2.函数封装适合页面有多个tab切换,需要注意的在获取的li标签和span标签对象时,必须将对应div对象作为参数传入 ...
- 用nginx实现分布式限流
1.前言 一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限流 . 本文主要阐述如何用nginx 来实现限流. 听说 Hystrix 也可 ...
- 论文deadline 最后三天
2015.12.29 星期二 内容整改 2015.12.30 星期三 参考文献,摘要等 2015.12.31 星期四 最后修改 尽最大的努力去做好论文的事情.
- python mongodb压力测试脚本
$ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 from pymongo import MongoC ...
- (转) Hibernate框架基础——操纵持久化对象的方法(Session中)
http://blog.csdn.net/yerenyuan_pku/article/details/52761021 上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如 ...
- Apache、Nginx与Tomcat的区别
一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上.其属于应用服务器.Apache支持支持模块多,性能稳定,A ...
- Mirror用法
switch (quadrantType) { case QuadrantType.one: db.setlayerCenter(); ids.Add(db.AddToModelSpace(arc)) ...
- vue中使用Swiper
第一步:安装swiper在项目目录下打开命令窗口输入命令:npm install swiper 第二步:引入js文件 第三步:引入css文件在main.js文件中引入css文件