zoukankan      html  css  js  c++  java
  • 《解读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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun,仅仅需设置REG二SZ类型的键值,将值设置为程序的路径就可以使用程序在系统启动时自启动。

    假设仅仅须要在下次系统启动时自启动一次,那么能够设置键HKEY_LOCAL_MACHINE SOFTWAREMicrosoftWindowsCurrentVersionRunOnce的键值。


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

    本节将介绍怎样在程序启动时载入调试器(读者也能够用于设置自启动程序)。“HKEY_LOCAL_MACHINESOFTWAREYMicrosoft,Windows NTCurrentVersionImage File
    Execution Options”下的子键能够用于指定启动调试器。

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


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

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

    指定实时调试器的方法为指定注冊表键“HKEY LOCAL MACHINESOFTWAREMicrosoft Windows
    NTCurrentVersionAeDebug”的“Debugger”键值。

  • 相关阅读:
    控件列[Coolite]上传文件
    阿里巴巴淘宝马云的SNS之梦有了新目标 收购“微博”
    十进制数真值配套自测连载(一)
    谷歌用户Siri当心!谷歌正从苹果业务中分走一杯羹
    服务协议Rest风格的web服务开发入门篇1
    注意测试数据hdu 1010 (DFS+剪枝)
    团队软件成为技术领导者研发团队管理经验分享
    字段数据用一句sql语句更新两个表并可更新对应的字段的值
    日期条件SQL 截取日期作为条件
    取消内存Myeclipse 9.0优化方法汇总
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6950722.html
Copyright © 2011-2022 走看看