Initially I put one of these on my christmas list thinking I would use it for an information display. Little did i know that this was just a display. Ya I know, dummy lol. Anyway, I saw that there was a program that would do what I wanted called AIDA64. After looking at it and seeing how involved it was this was not for me. I just wanted a simple display to show my usage. Plus I didn't want to pay for it :P. So this was my vacation project! Feel free to use and modify it to suite your needs! I may add some different displays with different looks if I get enough interest. Let me know! And hope this is useful for you! I've tried to bug check it best I could, but if there is one you find, please let me know and i'll try and get it fixed.
Rick DFS
A modern, feature-rich Windows system monitoring application built with .NET 8
Memory Monitor running on a 1920x480 mini display with real-time CPU, GPU, RAM, VRAM, Disk, and Network monitoring
Graph Display mode
System Monitor is a comprehensive real-time monitoring tool for Windows designed for secondary/mini displays (1920x480). Built with modern .NET 8 and Windows Forms, it features beautiful circular gauge visualizations with temperature monitoring for both CPU and GPU. Program will automatically detect a 1920x480 display and move itself over to it. No moving the display each time.
- **Automatic move to any 1920x480 display!
- Two Display Modes - Switch between Circular Gauges and Bar Graph views
- Smooth Mode Transitions - Fade animation when switching display modes
- Real-Time CPU Monitoring - Track CPU usage with temperature display
- GPU Monitoring - Native NVIDIA (NVML) and AMD (ADL) support with temperature
- System Memory Tracking - Monitor RAM usage with detailed statistics
- GPU VRAM Monitoring - Video memory usage and total capacity
- Disk I/O Monitoring - Read/write throughput with auto-scaling
- Network Monitoring - Upload/download speed with auto-scaling
- Temperature Display - CPU and GPU temperatures shown inside gauges
- FPS Monitoring - Real-time frame rate display with smart game detection
- Date & Time Display - Current date and time on mini monitor
- Touch Gesture Support - Full touch input for mini monitors with touchscreen
- Mini Monitor Optimized - Designed for 1920x480 secondary displays
Memory Monitor offers two beautiful display modes:
- Classic needle gauge visualization
- 6 circular gauges in a horizontal row
- FPS gauge between GPU and VRAM gauges
- Date/time display in corners
- Animated needle movements with glow effects
- Modern animated bar graph panels
- 5 panels: CPU, GPU, VRAM, Drive, Network
- Rolling 12-point history animation
- Gradient-filled bars with glow effects
- Futuristic corner accents
Right-click the system tray icon → Display Mode:
- Circular Gauges - Classic needle gauge display
- Bar Graph - Modern animated bar panels
Smooth fade transition (300ms) provides a polished experience when switching.
The application displays 6 gauges in a horizontal row, optimized for 1920x480 displays:
| Gauge | Color | Information |
|---|---|---|
| RAM | Blue | Memory usage (GB used / total) |
| CPU | Red | CPU usage (%) + Temperature |
| GPU | Orange | GPU usage (%) + Temperature |
| FPS | Color-coded | Frames per second (gaming) |
| VRAM | Purple | Video memory (GB used / total) |
| DISK | Green | Disk I/O throughput (Mbps) |
| NET | Yellow | Network throughput (Mbps) |
Additional Display Elements:
- Date in the top-left corner
- Time in the top-right corner (12-hour format)
5 panels displayed horizontally:
| Panel | Color | Information |
|---|---|---|
| CPU | Cyan | CPU usage (%) + Temperature |
| GPU | Green | GPU usage (%) + Temperature + FPS |
| VRAM | Purple | Video memory usage |
| DRIVE | Orange | Disk I/O activity |
| NETWORK | Cyan | Upload/Download speeds |
Memory Monitor displays real-time frames per second with intelligent game detection.
- Color-Coded Quality Indicator:
- 🟢 Green (60+ FPS) - Excellent, butter-smooth gaming
- 🟡 Yellow-Green (45-59 FPS) - Good, very playable
- 🟠 Orange (30-44 FPS) - Acceptable, playable with some stutter
- 🔴 Red (<30 FPS) - Poor, significant performance issues
- Auto-scaling font for 1-4 digit FPS values
- Circular Gauges: Dedicated FPS gauge between GPU and VRAM
- Bar Graph: FPS shown in GPU panel
The FPS display automatically appears when you're gaming and hides when you're not:
- Detects fullscreen and borderless window games
- Monitors sustained high GPU usage (>70% for 5+ seconds)
- Recognizes 60+ popular game processes
- Combines multiple signals for accurate detection
Right-click tray icon → FPS Display submenu (available in both display modes):
- Auto-detect (default) - Smart detection based on activity
- Always Show - Force FPS display when available
- Always Hide - Never show FPS gauge
- Download and install HWiNFO
- Download and install RTSS (RivaTuner Statistics Server)
- Launch HWiNFO → Settings → Enable "Shared Memory Support"
- Launch your game with RTSS overlay enabled
- FPS gauge appears automatically when gaming is detected
Note: FPS monitoring requires HWiNFO with "Shared Memory Support" enabled and RTSS or a game overlay that reports FPS to HWiNFO.
For mini monitors with touchscreen capability, Memory Monitor supports the following gestures:
- Swipe Left/Right - Switch between monitors
- Swipe Down - Minimize to system tray
- Tap on GPU/Disk/Network Gauge - Cycle through available devices
- Each tap advances to the next device (wraps around)
- Toast notification shows newly selected device
- Mouse clicks still show full popup menu for precise selection
- Long Press - Show context menu at touch location
- Two-Finger Tap - Toggle "Always on Top" mode
- Touchscreen-enabled mini monitor with HID-compliant touch hardware
- USB data cable connection (not power-only)
- Windows-recognized touch drivers
- NVIDIA GPUs - Native support via NVML (nvml.dll)
- AMD GPUs - Native support via ADL (atiadlxx.dll)
- Displayed inside the GPU usage gauge
The application uses multiple methods to obtain CPU temperature:
- LibreHardwareMonitor (Primary) - Works on most systems
- HWiNFO Shared Memory (Fallback) - Required for some Intel 12th/13th/14th gen CPUs
If CPU temperature shows 0°C or doesn't appear:
- Download HWiNFO from https://www.hwinfo.com/
- Install and run HWiNFO (Sensors-only mode is sufficient)
- Enable Shared Memory Support:
- Click the Settings button (gear icon)
- Check "Shared Memory Support"
- Click OK
- Keep HWiNFO running in the background
Why is HWiNFO needed?
Some modern Intel CPUs require a kernel driver to read temperature sensors. HWiNFO has broader hardware support and exposes sensor data through a shared memory interface.
- Operating System: Windows 10/11 (x64)
- .NET Runtime: .NET 8.0 Desktop Runtime
- Privileges: Administrator (for hardware sensor access)
- NVIDIA: Latest GeForce/Quadro drivers
- AMD: Latest Radeon drivers
- Download the latest
MemoryMonitorSetup.msifrom Releases - Run the installer
- Launch "Memory Monitor" from the Start Menu
- Download the portable ZIP from Releases
- Extract to desired location
- Run
Memory Monitor.exeas Administrator
- Right-click and select "Run as administrator"
- Or the application will prompt for elevation automatically
- Visual Studio 2022 or later
- .NET 8.0 SDK
- WiX Toolset v4 (for installer)
# Clone the repository
git clone https://github.com/rickbme/Memory-Monitor.git
cd Memory-Monitor
# Restore and build
dotnet restore
dotnet build --configuration Release
# Run
cd "Memory Monitor\bin\Release\net8.0-windows\win-x64"
.\Memory Monitor.exedotnet build MemoryMonitorSetup\MemoryMonitorSetup.wixproj --configuration ReleaseMemory Monitor/
Memory Monitor/ # Main application
CompactGaugeControl.cs # Circular gauge UI control
MiniMonitorForm.cs # Main form (1920x480)
CPUMonitor.cs # CPU usage & temp monitoring
GPUMonitor.cs # GPU usage, VRAM & temp monitoring
DiskMonitor.cs # Disk I/O monitoring
NetworkMonitor.cs # Network throughput monitoring
HardwareMonitorService.cs # LibreHardwareMonitor wrapper
HWiNFOReader.cs # HWiNFO shared memory reader
NVMLInterop.cs # NVIDIA NVML interop
ADLInterop.cs # AMD ADL interop
app.manifest # UAC admin manifest
MemoryMonitorSetup/ # WiX installer project
README.md
CHANGELOG.md
- Ensure application is running as Administrator
- Install and configure HWiNFO (see setup section above)
- Make sure HWiNFO is running before starting Memory Monitor
- NVIDIA: Ensure latest GeForce drivers are installed
- AMD: Ensure latest Radeon drivers are installed
- Intel integrated graphics may not support temperature reading
- Ensure .NET 8.0 Runtime is installed
- Try running as Administrator
- Check Windows Event Viewer for error details
- GeForce series (GTX, RTX)
- Full utilization, memory, and temperature support
- Radeon RX series
- Full utilization and temperature support
- Limited support via Performance Counters
- No temperature reading available
- New: FPS Display menu now available in Bar Graph mode
- New: Smooth fade transitions when switching display modes
- Improved: Both display modes now have feature parity for FPS options
- Fixed: Display mode switching no longer exits the application
- Fixed: Taskbar visibility issues in both display modes
- Fixed: Welcome dialog and intro logos only show once per session
- New: Bar Graph mode has distinct tray icon style
- New: Bar Graph display mode with animated panels
- New: Display Mode menu for switching between views
- New: NetworkBarPanelControl for dual upload/download display
- New: Date and time display on mini monitor
- New: FPS gauge with intelligent game activity detection
- New: Color-coded FPS quality indicator (Green/Yellow/Orange/Red)
- New: Touch cycling for device selection (GPU, Disk, Network)
- New: FPS display mode menu (Auto-detect, Always Show, Always Hide)
- Improved: Aggregate mode always available for Disk and Network
- Improved: Touch UX optimized for small displays
- Removed: CPU temperature warning popup (cleaner experience)
- New: Splash screen with branded DFS logo
- New: Mini monitor intro logo (1920x480)
- New: Full touch gesture support (swipe, tap, long-press, two-finger tap)
- New: Touch-enabled device selection for gauges
- New: Toast notifications for visual feedback
- Changed: Application minimizes to system tray instead of taskbar
- Refactored: MiniMonitorForm split into partial classes for better organization
- New: Custom gauge-style application icon
- New: Dynamic tray icon with color-coded RAM usage (Green/Yellow/Red)
- New: GaugeIconGenerator for programmatic icon creation
- Improved: Code quality with SafeUpdate wrapper and proper resource disposal
- Fixed: Icon format, build configuration, nullable warnings
- New: Borderless full screen mode for clean display
- New: Auto monitor detection (4:1 aspect ratio)
- New: Move to Next Monitor tray menu option
- New: Always on Top toggle (F11 keyboard shortcut)
- New: Window dragging support
- Changed: Larger gauges using 95% of vertical space
- Changed: Increased label font size for better readability
- New: Mini monitor display support (1920x480)
- New: Circular gauge design with needle indicators
- New: CPU temperature monitoring via LibreHardwareMonitor/HWiNFO
- New: GPU temperature display in gauges
- New: Disk I/O and Network monitoring
- New: Administrator manifest for sensor access
- Changed: Complete UI redesign for horizontal displays
- Initial release
- CPU, GPU, and memory monitoring
- Native NVIDIA and AMD GPU support
- Dark mode theme
Contributions are welcome! Please feel to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- LibreHardwareMonitor - Hardware monitoring library
- HWiNFO - Hardware information and monitoring tool
- NVIDIA for NVML API
- AMD for ADL SDK
If you encounter issues or have feature requests:
- Open an Issue on GitHub
- Check existing issues for solutions
- Provide system information and error details
Made by DFS - Dad's Fixit Shop
Electronics repair, Software, & Game Development