SystemReview is a feature-rich WinUI 3 desktop application that provides comprehensive system hardware inspection, S.M.A.R.T. disk health analysis, EDID monitor details, real-time networking diagnostics, performance monitoring, theme switching, and exportable reports — all in a modern Fluent Design UI.
Features · Screenshots · Installation · Building from Source · Usage Guide · Architecture · Contributing
- Features
- Screenshots
- System Requirements
- Installation
- Building from Source
- Usage Guide
- Architecture
- Configuration
- Troubleshooting
- Known Limitations
- Roadmap
- Contributing
- License
- Acknowledgments
| Feature | Details |
|---|---|
| CPU Information | Processor name, physical cores, logical processors, max clock speed, architecture (x86/x64/ARM64) |
| Memory (RAM) | Total installed RAM, available memory, usage percentage with visual progress bar |
| Graphics (GPU) | GPU name, accurate VRAM (supports >4 GB via registry), resolution, refresh rate, color depth, driver version & date |
| Storage Drives | All mounted drives with volume label, file system type, total/free space, visual usage bar |
| Motherboard & BIOS | Manufacturer, product name, serial number, BIOS version, BIOS manufacturer, release date |
| Operating System | OS name, version, build number, architecture, install date, uptime, last boot time, machine/user name |
| Display | GPU-reported resolution, refresh rate, color depth per output |
| Battery | Battery name, charge percentage, estimated runtime, chemistry type, design voltage (laptops) |
| Installed Software | Top 30 installed programs with version numbers (fast registry-based scanning) |
| Feature | Details |
|---|---|
| S.M.A.R.T. Data | Raw attribute parsing from MSStorageDriver_ATAPISmartData WMI |
| Power-On Hours | Total lifetime the disk has been powered on (hours, days, years) |
| Power Cycle Count | Number of times the disk was turned on/off |
| Temperature | Current drive temperature in °C and °F |
| Health Status | ✅ Healthy / |
| SSD vs HDD Detection | Automatic media type detection via MSFT_PhysicalDisk |
| All Attributes Table | Expandable table with ID, name, current, worst, threshold, raw value, and status for every S.M.A.R.T. attribute |
| Threshold Checking | Reads thresholds from MSStorageDriver_FailurePredictThresholds and flags degraded attributes |
| Feature | Details |
|---|---|
| EDID Parsing | Reads raw Extended Display Identification Data from hardware registers |
| Manufacturer | Decoded from PnP codes (Samsung, Dell, LG, ASUS, BenQ, Acer, etc.) |
| Serial Number | Hardware serial from EDID descriptor blocks |
| Screen Size | Physical dimensions in cm and inches with diagonal calculation |
| Native Resolution | Parsed from EDID detailed timing blocks |
| Color Bit Depth | 6-bit, 8-bit, 10-bit, 12-bit, etc. |
| Display Type | Digital (HDMI/DisplayPort/DVI) or Analog (VGA) |
| Connection Type | HDMI, DisplayPort, DVI, VGA, eDP, etc. via WmiMonitorConnectionParams |
| Manufacture Date | Week and year of manufacture with estimated lifetime usage |
| DPMS Support | Standby, Suspend, Active-Off power management capabilities |
| Supported Resolutions | Established timings list from EDID |
| Fallback Detection | Uses WmiMonitorID when EDID raw blocks are unavailable |
| Feature | Details |
|---|---|
| IP Configuration | Full IP config for all active adapters — IPv4, IPv6, gateway, DNS suffix, link speed |
| Network Adapters | Complete adapter list with name, description, status, speed, MAC address, adapter type |
| Ping Test | Async ICMP ping with 4 sequential pings, round-trip time, TTL, timestamps |
| Traceroute | Real-time traceroute using Windows tracert — hop-by-hop with live UI updates |
| Port Scanner | Lists all active TCP connections, TCP listeners, and UDP listeners with addresses, ports, and states |
| DNS Lookup | Resolves hostnames to IP addresses showing address family (IPv4/IPv6) |
| Network Statistics | Bytes sent/received, packets sent/received, error counts, link speed per adapter |
| Real-time Monitoring | Automatic detection of network availability changes and address changes with auto-refresh |
| Feature | Details |
|---|---|
| Performance Counters | Live CPU usage %, available RAM (MB), disk activity %, app memory, thread count, process count |
| Real-time Monitor | Toggle-able 2-second refresh loop for continuous performance tracking |
| Event Logs | Last 10 errors/warnings from the Windows System event log with source, level, time, and message |
| Network Services | Status of 17 critical network services (DHCP, DNS Cache, WLAN, Netlogon, etc.) with start type |
| Full Diagnostics | One-click diagnostic that tests: Internet connectivity, DNS resolution, firewall status, network adapters, and gateway reachability |
| Feature | Details |
|---|---|
| Dark / Light / System Theme | Switch between dark mode, light mode, or follow system setting |
| Auto-load Toggle | Enable/disable automatic data loading when switching tabs |
| About Section | App version, description, and GitHub link |
| Format | Details |
|---|---|
| JSON | Structured, indented JSON with all collected data — ideal for programmatic consumption |
| Plain Text | Human-readable formatted report with ASCII borders and aligned columns |
| Per-Tab Export | Each tab (Specs, Networking, Diagnostics) has independent export buttons |
| Auto-naming | Files are automatically named with timestamps: SystemReview_Specs_20260213_143022.json |
| Desktop Output | All exports save directly to your Desktop for easy access |
Data loads automatically when you switch tabs (configurable in Settings).
┌──────────────────────────────────────────────────┐
│ [🔄 Refresh All] [📋 Export JSON] [📝 Export] │
│ │
│ ┌─ 🖥️ Processor (CPU) ────────────────────┐ │
│ │ Name: AMD Ryzen 9 7950X │ │
│ │ Cores: 16 │ │
│ │ Logical Procs: 32 │ │
│ └──────────────────────────────────────────┘ │
│ │
│ ┌─ 🎮 Graphics (GPU) ────────────────────┐ │
│ │ Name: NVIDIA GeForce RTX 4070 │ │
│ │ VRAM: 8.00 GB ← accurate! │ │
│ │ Resolution: 2560 x 1440 │ │
│ │ Refresh: 165 Hz │ │
│ │ Driver: 32.0.15.6590 (2026-01-15) │ │
│ └──────────────────────────────────────────┘ │
│ │
│ ┌─ 🧠 Memory (RAM) ──────────────────────┐ │
│ │ [████████████░░░░░░░░] 62% │ │
│ │ Total: 32.00 GB Available: 12.14 GB │ │
│ └─────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ [🔄 Refresh Disk Health] │
│ │
│ ┌─ 💾 Samsung SSD 980 PRO 1TB ─ ✅ Healthy ┐ │
│ │ Media Type: SSD (Solid State) │ │
│ │ Interface: SCSI (NVMe) │ │
│ │ Power-On Time: 8,742 hours │ │
│ │ Power Cycles: 1,247 │ │
│ │ Temperature: 38°C / 100°F │ │
│ │ ──────────────────────────────────────── │ │
│ │ Reallocated: 0 │ │
│ │ Pending: 0 │ │
│ │ Uncorrectable: 0 │ │
│ │ │ │
│ │ ▸ All S.M.A.R.T. Attributes (14) │ │
│ │ ID Attribute Curr Raw Sts │ │
│ │ 1 Read Error Rate 100 0 OK │ │
│ │ 5 Reallocated Sectors 100 0 OK │ │
│ │ 9 Power-On Hours 98 8742 OK │ │
│ │ 194 Temperature 68 38 OK │ │
│ └─────────────────��───────────────────────────┘ │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ [🔄 Refresh Monitor Info] │
│ │
│ ┌─ 🖥️ Monitor 1: DELL S2722DGM ─ 🟢 Active ┐ │
│ │ Manufacturer: Dell (DEL) │ │
│ │ Serial: F8KH3N3 │ │
│ │ Connection: DisplayPort (External) │ │
│ │ ──────────────────────────────────────── │ │
│ │ Display Type: Digital (DisplayPort) │ │
│ │ Color Depth: 8-bit │ │
│ │ Gamma: 2.20 │ │
│ │ ──────────────────────────────────────── │ │
│ │ Native Res: 2560 x 1440 │ │
│ │ Screen Size: 60 cm x 34 cm │ │
│ │ Diagonal: 27.2" │ │
│ │ ──────────────────────────────────────── │ │
│ │ Manufactured: Week 22, 2023 │ │
│ │ Est. Usage: ~2.7 yrs (est. 7,884 hrs) │ │
│ │ │ │
│ │ ▸ Supported Resolutions (8) │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ [🔄 Refresh] [📋 JSON] [📝 Text] │
│ │
│ 🌐 IP Configuration │
│ ┌─────────────────────────────────────────┐ │
│ │ Wi-Fi - IPv4: 192.168.1.42 │ │
│ │ Wi-Fi - Gateway: 192.168.1.1 │ │
│ │ Wi-Fi - Speed: 867 Mbps │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 📡 Ping Test │
│ [ 8.8.8.8 ] [Ping] │
│ 14:30:22.451 8.8.8.8 → Success 12ms TTL:118 │
│ 14:30:22.963 8.8.8.8 → Success 11ms TTL:118 │
│ │
│ 🛤️ Traceroute │
│ [ 8.8.8.8 ] [Trace] │
│ Hop 1: 192.168.1.1 1ms OK │
│ Hop 2: 10.0.0.1 5ms OK │
│ Hop 3: 172.16.0.1 12ms OK │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ [🔄 Refresh] [⏱️ Start Monitor] [🩺 Diagnose] │
│ │
│ 📈 Performance Counters │
│ ┌─────────────────────────────────────────┐ │
│ │ CPU Usage: 23.4% │ │
│ │ Available RAM: 12045 MB │ │
│ │ Disk Activity: 5.2% │ │
│ │ System Processes: 312 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 🩺 Diagnostic Log │
│ === System Diagnostics Report === │
│ [1/5] Testing Internet Connectivity... │
│ ✅ Internet: OK (12ms) │
│ [2/5] Testing DNS Resolution... │
│ ✅ DNS: OK (resolved to 13.107.246.13) │
│ [3/5] Checking Firewall Status... │
│ 🔥 State: ON │
│ [4/5] Checking Network Adapters... │
│ 🔌 Wi-Fi: Wireless80211 - 867 Mbps │
│ [5/5] Testing Gateway... │
│ ✅ Gateway 192.168.1.1: OK (1ms) │
│ === Diagnostics Complete === │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Settings │
│ │
│ ┌─ 🎨 Appearance ────────────────────────┐ │
│ │ App Theme: │ │
│ │ ○ Use system setting │ │
│ │ ○ Light │ │
│ │ ● Dark │ │
│ └─────────────────────────────────────────┘ │
│ │
│ ┌─ 🔄 Behavior ──────────────────────────┐ │
│ │ Auto-load data when switching tabs [✓] │ │
│ └─────────────────────────────────────────┘ │
│ │
│ ┌─ ℹ️ About ──────────────────────────────┐ │
│ │ SystemReview v1.2.0 │ │
│ │ Made by Crazegi │ │
│ │ [View on GitHub] │ │
│ └──────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
| Requirement | Minimum |
|---|---|
| OS | Windows 10 version 1903 (build 19041) or later |
| Architecture | x64 (AMD64 / Intel 64-bit) |
| .NET Runtime | .NET 10.0 (bundled in self-contained builds) |
| Windows App SDK | 1.6 Runtime (bundled in self-contained builds) |
| RAM | 4 GB minimum, 8 GB recommended |
| Disk Space | ~200 MB for self-contained build |
| Permissions | Administrator recommended (required for S.M.A.R.T. data, Event Logs, Performance Counters) |
- Go to the Releases page
- Download
SystemReview-Portable-x64.zip - Extract to any folder
- Run
SystemReview.exe
No additional installations needed — the self-contained build includes everything.
If you prefer a smaller download:
- Install the Windows App SDK 1.6 Runtime:
winget install -e --id Microsoft.WindowsAppRuntime.1.6
- Install .NET 10 Runtime:
winget install -e --id Microsoft.DotNet.DesktopRuntime.10
- Download the framework-dependent build from Releases
- Extract and run
SystemReview.exe
| Tool | Install Command |
|---|---|
| .NET 10 SDK | winget install -e --id Microsoft.DotNet.SDK.10 |
| Windows App SDK 1.6 Runtime | winget install -e --id Microsoft.WindowsAppRuntime.1.6 |
| Git | winget install -e --id Git.Git |
Verify your setup:
dotnet --version # Should show 10.x.x# Clone the repository
git clone https://github.com/Crazegi/SystemReviewApp.git
cd SystemReviewApp
# Restore NuGet packages
dotnet restore SystemReview.csproj
# Build in Debug mode
dotnet build SystemReview.csproj
# Run the app
.\bin\Debug\net10.0-windows10.0.22621.0\win-x64\SystemReview.exeThis creates a fully portable build with no external dependencies:
dotnet publish SystemReview.csproj -c Release -r win-x64 --self-contained trueThe output will be in:
bin\Release\net10.0-windows10.0.22621.0\win-x64\publish\
Compress-Archive `
-Path ".\bin\Release\net10.0-windows10.0.22621.0\win-x64\publish\*" `
-DestinationPath "$HOME\Desktop\SystemReview-Portable-x64.zip"# Edit .csproj: change <RuntimeIdentifier>win-x64</RuntimeIdentifier>
# to <RuntimeIdentifier>win-arm64</RuntimeIdentifier>
dotnet publish SystemReview.csproj -c Release -r win-arm64 --self-contained trueThe primary hardware and software inventory tab. Data loads automatically when you open the tab.
| Card | What It Shows |
|---|---|
| Processor | CPU model, core count, thread count, clock speed, architecture |
| Memory | Total/available RAM with a color-coded usage bar |
| Graphics | Each GPU with accurate VRAM (even >4 GB), resolution, refresh rate, color depth, driver version & date |
| Storage | Per-drive cards with usage bars — quickly spot drives running low |
| Operating System | Windows version, build, uptime, install date, current user |
| Motherboard / BIOS | Board manufacturer/model, BIOS version and vendor |
| Display | Resolution, refresh rate, color depth per GPU output |
| Battery | Charge level, estimated runtime, battery chemistry (laptops only) |
| Installed Software | Top 30 installed programs (fast registry scan, not slow Win32_Product) |
Deep storage health analysis using S.M.A.R.T. data parsed from raw hardware registers.
⚠️ Run as Administrator for full S.M.A.R.T. data! Without admin, basic disk info is still shown.
- Power-On Hours — how long the disk has been running in its entire lifetime
- Power Cycle Count — total on/off cycles
- Temperature — current drive temperature
- Sector Health — reallocated, pending, and uncorrectable sectors with color-coded warnings
- Health Badge — instant visual: ✅ Healthy /
⚠️ Warning / ❌ Critical - SSD vs HDD — automatic media type detection
- Full Attribute Table — expandable list of all S.M.A.R.T. attributes with thresholds
Detailed monitor specifications parsed from EDID (Extended Display Identification Data).
- Manufacturer — decoded from PnP 3-letter codes (supports 30+ brands)
- Screen dimensions — physical size in cm/inches with diagonal
- Native resolution — from detailed timing blocks
- Color depth & gamma — bit depth and gamma curve
- Connection type — HDMI, DisplayPort, DVI, VGA, eDP
- Age & estimated usage — manufacture date with estimated lifetime hours
- Fallback — uses
WmiMonitorIDwhen raw EDID is unavailable
Interactive network analysis tools with real-time updates.
| Tool | How To Use |
|---|---|
| IP Config | Auto-loads on tab open — shows all adapter IPs, gateways, DNS |
| Ping | Enter host, click Ping — 4 ICMP requests with latency |
| Traceroute | Enter host, click Trace — live hop-by-hop display |
| Port Scanner | Click Scan — all TCP/UDP connections and listeners |
| DNS Lookup | Enter hostname, click Lookup — resolves to all IPs |
| Net Stats | Auto-loads — bytes/packets sent/received per adapter |
The app automatically detects network changes and refreshes.
System health monitoring and automated diagnostics.
- Performance Counters — CPU %, available RAM, disk activity, process count
- Real-time Monitor — 2-second auto-refresh for continuous tracking
- Run Diagnostics — 5-step automated health check (internet, DNS, firewall, adapters, gateway)
- Event Logs — recent Windows System errors/warnings
- Network Services — status of 17 critical Windows services
Click the ⚙️ Settings gear icon in the navigation bar:
- Theme — Switch between Dark, Light, or System default
- Auto-load — Toggle automatic data loading when switching tabs
- About — Version info and GitHub link
Every tab (Specs, Networking, Diagnostics) has Export JSON and Export Text buttons.
| Export Type | Format | Best For |
|---|---|---|
| JSON | Structured, indented JSON | Automation, scripts, APIs |
| Text | Formatted plain text with ASCII art | Sharing, printing, documentation |
Files save to your Desktop with timestamped names:
SystemReview_Specs_20260213_143022.json
SystemReview_Network_20260213_143145.txt
SystemReview_Diagnostics_20260213_143312.json
SystemReviewApp/
│
├── SystemReview.csproj # Project configuration, NuGet references
├── WinApp.sln # Visual Studio solution file
├── LICENSE # GNU GPL v3 license
├── .gitignore # Git ignore rules (bin/, obj/, etc.)
│
├── App.xaml # Application entry point (XAML resources)
├── App.xaml.cs # Application startup, theme support
│
├── MainWindows.xaml # Main window with NavigationView (5 tabs + Settings)
├── MainWindows.xaml.cs # Navigation logic, theme switching
│
├── Helpers/
│ ├── ObservableObject.cs # INotifyPropertyChanged base class
│ └── RelayCommand.cs # ICommand implementations (sync + async)
│
├── Models/
│ └── AllModels.cs # All data records (CpuInfo, GpuInfo, DiskHealthModel,
│ # MonitorDetailModel, SmartAttribute, etc.)
│
├── Services/
│ ├── WmiService.cs # WMI queries, S.M.A.R.T. parsing, EDID parsing,
│ │ # GPU VRAM from registry, monitor detection
│ ├── NetworkService.cs # Network tools (ping, traceroute, DNS, ports)
│ └── DiagnosticsService.cs # Perf counters, event logs, services, diagnostics
│
├── ViewModels/
│ ├── SystemSpecsViewModel.cs # Logic + data for System Specs tab
│ ├── NetworkingViewModel.cs # Logic + data for Networking tab
│ └── DiagnosticsViewModel.cs # Logic + data for Diagnostics tab
│
└── Views/
├── SystemSpecsPage.xaml/.cs # System Specs tab (auto-loads)
├── DiskHealthPage.xaml/.cs # Disk Health tab — S.M.A.R.T. data (auto-loads)
├── MonitorInfoPage.xaml/.cs # Monitor Info tab — EDID data (auto-loads)
├── NetworkingPage.xaml/.cs # Networking tab
├── DiagnosticsPage.xaml/.cs # Diagnostics tab
└── SettingsPage.xaml/.cs # Settings — theme, auto-load, about
| Pattern | Implementation |
|---|---|
| MVVM | ViewModels contain all logic; Views only handle UI binding and events |
| Observable Pattern | ObservableObject base class with INotifyPropertyChanged for reactive UI |
| Command Pattern | RelayCommand and AsyncRelayCommand for button bindings |
| Service Layer | Static service classes encapsulate all data access |
| Async/Await | All I/O-bound and CPU-bound operations are async with Task.Run |
| Parallel Loading | Task.WhenAll loads all sections simultaneously for fast refresh |
| Auto-load | Pages load data on Loaded event (configurable via Settings) |
| Component | Technology |
|---|---|
| UI Framework | WinUI 3 (Microsoft.UI.Xaml) |
| App Platform | Windows App SDK 1.6 |
| Language | C# 12 |
| Runtime | .NET 10.0 |
| Hardware Queries | WMI via System.Management |
| GPU VRAM | Windows Registry (HardwareInformation.qwMemorySize) |
| Disk Health | WMI MSStorageDriver_ATAPISmartData + FailurePredictThresholds |
| Monitor Info | WMI WmiMonitorRawEEdidV1Block + WmiMonitorID + WmiMonitorConnectionParams |
| Memory Info | Native P/Invoke GlobalMemoryStatusEx |
| Networking | System.Net.NetworkInformation, System.Net.Dns, System.Diagnostics.Process |
| Performance | System.Diagnostics.PerformanceCounter |
| Event Logs | System.Diagnostics.EventLog |
| Services | System.ServiceProcess.ServiceController |
| Serialization | System.Text.Json |
| WMI Class | Data Retrieved |
|---|---|
Win32_Processor |
CPU name, cores, logical processors, speed, architecture |
Win32_VideoController |
GPU name, driver, resolution, refresh rate, color depth |
Win32_DiskDrive |
Physical disk model, serial, firmware, interface, size |
Win32_BaseBoard |
Motherboard manufacturer, product, serial |
Win32_BIOS |
BIOS version, manufacturer, release date |
Win32_OperatingSystem |
OS name, version, build, uptime, install date |
Win32_Battery |
Charge level, runtime, chemistry, voltage |
MSFT_PhysicalDisk |
SSD vs HDD detection (media type, spindle speed) |
MSStorageDriver_ATAPISmartData |
Raw S.M.A.R.T. attribute data (power-on hours, temp, sectors) |
MSStorageDriver_FailurePredictThresholds |
S.M.A.R.T. threshold values per attribute |
WmiMonitorRawEEdidV1Block |
Raw EDID bytes for monitor identification |
WmiMonitorID |
Monitor manufacturer, serial, name (fallback) |
WmiMonitorConnectionParams |
Connection type (HDMI/DP/DVI/VGA) and active status |
| Key | Purpose |
|---|---|
HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318} |
Accurate GPU VRAM (qwMemorySize) for cards >4 GB |
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall |
Fast installed software enumeration |
HKLM\SOFTWARE\WOW6432Node\...\Uninstall |
32-bit software on 64-bit systems |
| API | Purpose |
|---|---|
GlobalMemoryStatusEx (P/Invoke) |
Total/available physical memory |
DriveInfo.GetDrives() |
Storage drive enumeration |
NetworkInterface.GetAllNetworkInterfaces() |
Network adapter details |
IPGlobalProperties |
Active TCP/UDP connections and listeners |
Ping.SendPingAsync() |
ICMP echo requests |
Dns.GetHostAddressesAsync() |
DNS resolution |
Process.Start("tracert") |
Traceroute execution |
PerformanceCounter |
CPU%, available memory, disk activity |
EventLog |
Windows System event log entries |
ServiceController |
Windows service status |
Some features require elevated privileges for full data:
| Feature | Without Admin | With Admin |
|---|---|---|
| CPU, GPU, Drives | ✅ Full | ✅ Full |
| RAM | ✅ Full | ✅ Full |
| GPU VRAM (>4 GB) | ✅ Full (registry) | ✅ Full |
| S.M.A.R.T. Disk Health | ✅ Full S.M.A.R.T. data | |
| Monitor EDID | ✅ Full | ✅ Full |
| Network IP/Adapters | ✅ Full | ✅ Full |
| Ping, DNS, Traceroute | ✅ Full | ✅ Full |
| Performance Counters | ✅ Full | |
| Event Logs | ✅ Full | |
| Firewall Status | ❌ Access denied | ✅ Full |
To run as administrator:
Start-Process .\SystemReview.exe -Verb RunAsThe monitored network services are defined in Services/DiagnosticsService.cs. You can modify the networkServices array:
string[] networkServices = [
"Dhcp", "Dnscache", "LanmanServer", "LanmanWorkstation",
"Netlogon", "NlaSvc", "WlanSvc", "Netman", "RemoteAccess",
"SharedAccess", "iphlpsvc", "Winmgmt", "W32Time",
"WinHttpAutoProxySvc", "dot3svc", "SSDPSRV", "upnphost"
];"Side-by-side configuration is incorrect"
The Windows App SDK Runtime is not installed or doesn't match the build version.
Fix:
winget install -e --id Microsoft.WindowsAppRuntime.1.6Or use a self-contained build:
dotnet publish SystemReview.csproj -c Release -r win-x64 --self-contained true"Access Denied" errors for WMI or Event Logs
Run the application as Administrator:
Start-Process .\SystemReview.exe -Verb RunAsS.M.A.R.T. data shows "N/A (run as Admin)"
The S.M.A.R.T. WMI classes (MSStorageDriver_ATAPISmartData) require administrator privileges. Run the app as admin to see power-on hours, temperature, and sector health.
GPU VRAM shows 4 GB instead of actual amount
This was fixed in v1.2.0. The app now reads VRAM from the Windows registry (qwMemorySize) which supports values >4 GB. If you still see incorrect values, ensure you're running the latest version.
Monitor Info tab shows no data
Some monitors don't expose EDID data through WMI. The app has multiple fallbacks:
- Raw EDID blocks (
WmiMonitorRawEEdidV1Block) - Monitor ID (
WmiMonitorID) — manufacturer, serial, name - Desktop Monitor (
Win32_DesktopMonitor) — basic info
If none work, your monitor's driver may not support WMI queries.
Battery section shows "No battery detected"
This is normal for desktop PCs. The battery card only shows data on laptops/tablets with a battery.
Performance counters show errors
Performance counters may need to be rebuilt:
# Run as Administrator
lodctr /RThen restart the app.
NETSDK1206 warning during build
This warning appears when using .NET 10 SDK. It's harmless and doesn't affect functionality. Adding <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> to the .csproj resolves the underlying native DLL copying issue.
XAML editor shows red squiggles in VS Code
This is normal — the XAML IntelliSense in VS Code doesn't fully support WinUI 3 data binding expressions. If dotnet build succeeds, the app is fine. These are design-time warnings only.
| Limitation | Reason | Workaround |
|---|---|---|
| NVMe S.M.A.R.T. | Some NVMe drives don't expose data via MSStorageDriver_ATAPISmartData |
Use manufacturer's tool (Samsung Magician, etc.) |
| Monitor EDID | Some monitors/drivers don't expose raw EDID via WMI | App falls back to WmiMonitorID |
| WiFi network scanning | WinUI 3 unpackaged apps can't access WiFiAdapter |
Use netsh wlan show networks manually |
| Single architecture | Self-contained builds target one architecture | Build separately for x64 and ARM64 |
| Windows only | WMI, PerformanceCounter, and WinUI 3 are Windows-specific | No cross-platform support planned |
| Export to Desktop only | Hardcoded export path | Modify ExportAsync methods for custom paths |
- Dark/Light theme toggle — Manual theme switching with system theme detection
- S.M.A.R.T. disk health — Full disk lifetime and health analysis
- Monitor EDID parsing — Detailed monitor specs from hardware data
- Accurate GPU VRAM — Registry-based reading for >4 GB cards
- Auto-load pages — Data loads when switching tabs
- Settings page — Theme, behavior, and about info
- Fast software scanning — Registry-based instead of slow Win32_Product
- Hardware temperature monitoring — CPU/GPU temps via OpenHardwareMonitor lib
- Network speed test — Built-in download/upload speed measurement
- WiFi signal strength — Wireless network signal quality display
- Process manager — Top resource-consuming processes list
- Startup programs — List and manage auto-start applications
- System health score — Aggregate score based on all diagnostics
- Custom export paths — File picker dialog for export location
- Historical data — Track system metrics over time with charts
- MSIX packaging — Microsoft Store distribution
Contributions are welcome! Here's how to get started:
-
Install prerequisites:
winget install -e --id Microsoft.DotNet.SDK.10 winget install -e --id Microsoft.WindowsAppRuntime.1.6
-
Fork and clone:
git clone https://github.com/YOUR_USERNAME/SystemReviewApp.git cd SystemReviewApp dotnet restore SystemReview.csproj dotnet build SystemReview.csproj
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following the existing code style:
- MVVM pattern (logic in ViewModels, not code-behind)
- Async/await for all I/O operations
- Try-catch with user-friendly error messages
- Test your changes thoroughly
- Commit:
git commit -m "feat: add amazing feature" - Push:
git push origin feature/amazing-feature - Open a Pull Request with a clear description
| Prefix | Usage |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation changes |
style: |
UI/formatting changes (no logic change) |
refactor: |
Code refactoring |
perf: |
Performance improvement |
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
- ✅ Use — You can use this software for any purpose
- ✅ Modify — You can modify the source code
- ✅ Distribute — You can share and distribute copies
- ✅ Patent Use — Contributors provide an express grant of patent rights
⚠️ Same License — Any modified version must also be distributed under GPL v3⚠️ Disclose Source — You must make your source code available when distributing⚠️ State Changes — You must document changes you make to the code- ❌ No Sublicensing — You cannot relicense under different terms
TL;DR: You can do anything with this code, but if you distribute a modified version, you must keep it open source under the same GPL v3 license.
For the full license text, see: https://www.gnu.org/licenses/gpl-3.0.en.html
- Microsoft WinUI 3 — The modern native UI framework
- Windows App SDK — Unified Windows development platform
- Fluent Design System — Design language and components
- .NET — Runtime and SDK
Made with ❤️ by Crazegi for Windows power users and IT professionals
⭐ Star this repo if you find it useful!