19、Windows API 系统信息
一、基本概念
GetVersionEx
GetSystemInfo
GetWindowsDirectory
GetSystemDirectory
Getting System Information[2]
Time[3]
Registry[4~6,1:P291]
示例:遍历子键和键值
二、其它
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、指定程序崩溃实时调试器
可以通过注册表指定实时调试器,比如指定为WinDBG或OllyDBG等调试器。指定实时调试器的方法为指定注册表键“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