19、Windows API 系统信息

本文介绍如何利用Windows注册表实现程序自启动及调试器指定。包括设置HKEY_LOCAL_MACHINE下Run和RunOnce键值实现自启动,及通过ImageFileExecutionOptions和AeDebug键值指定调试器。

一、基本概念<?xml:namespace prefix = o />

GetVersionEx

GetSystemInfo

GetWindowsDirectory

GetSystemDirectory

Getting System Information[2]

Time[3]

Registry[4~6,1:P291]

wps_clip_image-6822

示例:遍历子键和键值

二、其它

1、通过注册表设置一个自启动的程序

程序的自启动有很多种方法,注册表是其中最常用的一种,有多个键具有这种功能。最常用的有:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,只需设置REG_SZ类型的键值,将值设置为程序的路径即可使用程序在系统启动时自启动。如果只需要在下次系统启动时自启动一次,那么可以设置键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce的键值。

2、设置随程序启动而启动的调试器(任何程序)

也可以用于设置自启动程序

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运行调试。

3、指定程序崩溃实时调试器

    可以通过注册表指定实时调试器,比如指定为WinDBGOllyDBG等调试器。指定实时调试器的方法为指定注册表键“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug”的“Debugger”键值。

参考

[1] 精通Windows API 函数、接口、编程实例

[2] http://msdn.microsoft.com/en-us/library/ms724426%28VS.85%29.aspx

[3] http://msdn.microsoft.com/en-us/library/ms724962%28VS.85%29.aspx

[4] http://www.cnblogs.com/mydomain/archive/2010/10/29/1864013.html

[5] http://www.cnblogs.com/mydomain/archive/2010/10/18/1855124.html

[6] http://msdn.microsoft.com/en-us/library/ms724871%28VS.85%29.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值