Siticone System Info
The SiticoneSystemInfo component is a powerful non-visual diagnostic tool for Windows Forms.
It provides comprehensive access to system metrics, including real-time performance counters (CPU, RAM), hardware specifications, network configurations, and security status (Antivirus, Firewall).
With built-in async refresh capabilities, it's ideal for building system dashboards, diagnostic utilities, and monitoring applications.
Core Configuration
Control which data points are collected and how frequently they update.
| Property | Type | Description & Usage Example |
|---|---|---|
AutoRefresh |
bool | sysInfo.AutoRefresh = true; Automatically triggers the data refresh cycle based on the RefreshInterval. |
RefreshInterval |
int | sysInfo.RefreshInterval = 1000; The time in milliseconds between automatic updates. Minimum is 1000ms. |
EnableHardwareInfo |
bool | sysInfo.EnableHardwareInfo = true; Toggles collection of Processor, Memory, BIOS, and Motherboard data. |
EnableOperatingSystemInfo |
bool | sysInfo.EnableOperatingSystemInfo = true; Toggles collection of OS version, hotfixes, and uptime. |
EnableNetworkInfo |
bool | sysInfo.EnableNetworkInfo = true; Toggles collection of Network Adapters, IP config, and shares. |
EnableDisplayInfo |
bool | sysInfo.EnableDisplayInfo = true; Toggles collection of Monitor and GPU information. |
Performance Metrics
Real-time counters for system load and resource usage.
| Property | Type | Description & Usage Example |
|---|---|---|
CpuUsage |
float | float cpu = sysInfo.CpuUsage; Current CPU utilization percentage. |
TotalMemory |
long | long ram = sysInfo.TotalMemory; Total physical RAM installed in bytes. |
FreeMemory |
long | long free = sysInfo.FreeMemory; Available physical RAM in bytes. |
MemoryUsagePercentage |
float | float used = sysInfo.MemoryUsagePercentage; Calculated percentage of RAM currently in use. |
ProcessCount |
int | int procs = sysInfo.ProcessCount; Total number of running processes. |
Hardware Information
Detailed specifications of the machine's physical components.
| Property | Type | Description |
|---|---|---|
ProcessorName |
string | Full commercial name of the CPU (e.g., "Intel Core i9-12900K"). |
ProcessorCores |
int | Number of physical cores available. |
SystemManufacturer |
string | The OEM manufacturer name (e.g., "Dell Inc.", "ASUS"). |
SystemModel |
string | The specific model number of the machine. |
BiosEntries |
List<BiosInfo> | Details about the system BIOS/UEFI including version and date. |
StorageDevices |
List<StorageInfo> | List of hard drives and SSDs, including capacity and interface type. |
Network & OS
Connectivity status and operating system details.
| Property | Type | Description |
|---|---|---|
OSName |
string | Name of the operating system (e.g., "Microsoft Windows 11 Pro"). |
OSArchitecture |
string | Bit architecture (e.g., "64-bit"). |
PrimaryNetworkAdapter |
string | Name of the active network interface. |
IPAddress |
string | Current IPv4 address of the primary adapter. |
SystemUptime |
TimeSpan | Duration since the last system boot. |
Security & Peripherals
Monitor security configurations and connected devices.
| Property | Type | Description |
|---|---|---|
AntivirusProducts |
List<AntivirusInfo> | Detected security software (Windows Defender, 3rd party) and their status (Enabled/Updated). |
FirewallRules |
List<FirewallRuleInfo> | List of active Windows Firewall rules (Requires Elevation). |
UserAccounts |
List<UserAccountInfo> | Local user accounts present on the system. |
Printers |
List<PrinterInfo> | Installed printers and their status (Default, Network, Shared). |
Public Methods
// Manually trigger a full data refresh without waiting for the timer.
await siticoneSystemInfo1.RefreshAsync();
// Retrieve a key-value dictionary of essential system specs.
var summary = siticoneSystemInfo1.GetSystemSummary();
foreach (var item in summary)
{
Console.WriteLine($"Key: {item.Key}, Value: {item.Value}");
}
// Generates a comprehensive text report of all system data.
await siticoneSystemInfo1.ExportToFileAsync("C:\\Reports\\SystemInfo.txt");
Events
// Fires whenever a refresh cycle completes (manual or automatic).
siticoneSystemInfo1.DeviceInfoUpdated += (s, e) =>
{
if (e.IsSuccessful)
{
lblCpu.Text = $"CPU: {siticoneSystemInfo1.CpuUsage:F1}%";
lblRam.Text = $"RAM: {siticoneSystemInfo1.MemoryUsagePercentage:F1}%";
}
else
{
Console.WriteLine($"Update Error: {e.Error?.Message}");
}
};
Detailed Usage Examples
Example 1: System Monitor Dashboard
A real-time dashboard that updates UI labels every second.
public void InitializeDashboard()
{
// Configure component for monitoring
siticoneSystemInfo1.EnableHardwareInfo = true;
siticoneSystemInfo1.RefreshInterval = 1000; // 1 second updates
siticoneSystemInfo1.AutoRefresh = true;
// Subscribe to updates
siticoneSystemInfo1.DeviceInfoUpdated += (s, e) =>
{
// Update UI elements safely
this.Invoke((MethodInvoker)(() =>
{
progressBarCpu.Value = (int)siticoneSystemInfo1.CpuUsage;
lblUptime.Text = siticoneSystemInfo1.SystemUptime.ToString(@"dd\.hh\:mm\:ss");
lblProcesses.Text = siticoneSystemInfo1.ProcessCount.ToString();
}));
};
}
Example 2: Security Audit Tool
Checks for active antivirus protection and lists installed security updates.
public void PerformSecurityAudit()
{
// Get Antivirus status
var avStatus = siticoneSystemInfo1.GetAntivirusStatus();
if (avStatus.IsProtectionEnabled)
{
Console.WriteLine("Security: SECURE");
foreach (string av in avStatus.ActiveProducts)
Console.WriteLine($"Active AV: {av}");
}
else
{
Console.WriteLine("Security: AT RISK - No active protection found!");
}
// List recent Hotfixes
Console.WriteLine("\nRecent Updates:");
foreach (var update in siticoneSystemInfo1.InstalledHotfixes.Take(5))
{
Console.WriteLine($"[{update.HotfixID}] {update.Description} ({update.InstalledOn:d})");
}
}