system-info
描述
info 是轻量 C 模块,仅通过 Windows API 与 Windows 注册表收集 Windows 硬件与软件信息。模块不以任何形式使用 WMI、WMIC、OLE 与 COM。所有数据以 Win32 API 直接调用与注册表查询读取,使模块快速、无依赖且易于审计。所有宽字符串在内部表示中转码为 UTF-8,因此调用方使用普通 char 缓冲。
模块提供扁平的 data-oriented API:每个函数填充调用方传入的缓冲或结构,并返回元素数量或状态。无全局变量、无存活超过调用的内部份配、无线程、无初始化/终止序列 - 函数可随时调用,重复调用安全。源码在 MinGW-w64 工具链内不依赖特定编译器:同一文件无需任何修改即可经 gcc 编译为 C、经 g++ 编译为 C++(公开头以 extern "C" 包裹)。仓库还包含 test_info - 链接模块并输出收集数据的小型控制台演示应用;演示居次,模块是主要成果,可用于任何 C/C++ 项目。
使用的模块
- kernel32.dll - 注册表访问、系统信息、内存状态、时间、磁盘枚举、ntdll.dll 动态加载
- advapi32.dll - Service Control Manager:服务枚举与配置查询
- user32.dll - 显示器枚举、键盘布局、虚拟屏幕、raw input 设备列表
- gdi32.dll - 设备能力:DPI、色深、刷新率
- psapi.dll - 进程模块枚举、内核驱动枚举
- version.dll - 键盘布局语言名称
- setupapi.dll - 网络类设备枚举
- ntdll.dll - RtlGetVersion 获取真实 OS 版本(运行时动态加载,不链接)
技术
- 语言:C/C++
- 编译器:MinGW-w64 gcc/g++(x86_64)
- 平台:Windows 10 / 11、x64
- API:Win32 API、Windows 注册表、SetupAPI、PSAPI、Toolhelp32
- 依赖:无 - 仅系统 DLL,无第三方库
- 输出编码:UTF-8(所有宽字符串经 WideCharToMultiByte 转码)
- 许可证 GNU AGPL v3(Affero GPL)