ISSystemInfo
A complete system-information module for Inno Setup
Detect OS, CPU, GPU, RAM, display and power/battery info from inside your installer — one line each.
v0.9 • Inno Setup 5 (ANSI & Unicode) → 7 • Windows Vista / Server 2008 and later
─────────────────────────────────────────────
What is it?
ISSystemInfo is a single, self-contained
[Code] module for Inno Setup that gives your installer real, live answers about the machine it's running on — without writing a line of WinAPI code yourself. Drop the .iss file in,
#include it, and call what you need.
It's built for real installer logic, not just for display: gate a large download behind a minimum DirectX/GPU requirement, skip a lengthy install step while the machine is running on battery, pick the right redistributable based on detected CPU architecture, or just log the full hardware profile for support tickets — all from a single function call. No external DLLs, no dependencies to ship — pure Pascal Script.
What can it tell you?
Operating System
- Full OS name & edition (e.g. "Windows 11 Pro for Workstations", "Windows Server 2025")
- Build number, major/minor version, service pack, and display version (22H2, 24H2, …)
- Can also evaluate a hypothetical target OS
Processor
- CPU brand string and architecture (x64, ARM64, x86 under WOW64, …)
- Logical core count, live CPU usage %, and true max clock speed
Graphics
- Full multi-GPU enumeration: name, vendor, VRAM, DirectX DDI version, feature levels, and shader model
- Automatically flags the primary adapter and whether it's integrated or not
Memory
- Installed vs. usable vs. currently available RAM, plus live usage %
Display
- Primary monitor resolution, colour depth, refresh rate, and DPI scaling
Power
- AC power / battery presence and charge percentage
Compatibility
Recommended: Windows Vista / Server 2008 or later.
Windows XP / Server 2003 is also supported — just define
CompatibleWithWinXP before including the module:
Code:
#define CompatibleWithWinXP
Only two functions rely on Vista-only APIs and are automatically disabled when this define is set:
GetSystemTotalInstalledMemory and
GetOSEditionName. Everything else works exactly the same on XP as it does on 11.
Quick examples
[CODE]
Code:
procedure InitializeWizard;
begin
if GetPrimaryGPUSupportDirectXVersion < 11.0 then
MsgBox('Your graphics card may not meet the minimum requirements.', mbInformation, MB_OK);
if not IsSysPluggedIn then
if MsgBox('This install may take a while and your device isn''t plugged in. Continue anyway?', mbConfirmation, MB_YESNO) = IDNO then
Abort;
end;
Download
ISSystemInfo v0.9.zip — full version history is in
the changelog post.
Credits
Special thanks to
Cesar82 for his help refining several parts of this module.
─────────────────────────────────────────────
Feedback, bug reports and feature requests are always welcome below.