19、Windows API 系统信息

一、基本概念

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

原文地址:https://www.cnblogs.com/mydomain/p/1931514.html