ShayanFiroozi/FluentSysInfo.Core
Provides the accessibility to the various System Informations with Fast Response caching mechanism ๐ฏ
FluentSysInfo.Core

FluentSysInfo.Core Provides the accessibility to the various System Informations.
Whats is special about FluentSysInfo ? ๐
FluentSysInfo uses an internal caching machanism called 'Fast Response'.
Getting the System Information could be a huge I/O load and makes your app slow ! Specially when your are requesting a Disk , Partition , CPU information , Running Processes , Installed Services or etc ...
The Fast Response feature is designed to deliver the information almost immediately after requesting a system infomation ๐
Features ๐ฏ
Supported System Information :
โ Date Time Info
โ OS Info
โ Main Board Info
โ BIOS Info
โ CPU Info
โ Physical Memory Info
โ Disk , Partition And Drive Info
โ Network Interfaces Info
โ Graphic Card Info
โ Running Processes Info
โ Windows Services Info
How To Use โ
It's really simple to use the FluentSysInfo.Core :
- Example for the Physical Memory (RAM) Info โฌ
Console.WriteLine(new FluentSysInfoCore().GetSystemInfo(FluentSysInfoTypes.PhysicalMemory));
And the result from the FluentSysInfo.Core would be something like this :
{
"Caption": "Physical Memory",
"Description": "Physical Memory",
"Name": "Physical Memory",
"Manufacturer": "04CB",
"SerialNumber": "2B960400",
"Tag": "Physical Memory 0",
"FormFactor": "8",
"BankLabel": "BANK 0",
"Capacity": "8589934592",
"DataWidth": "64",
"InterleavePosition": "0",
"MemoryType": "0",
"Speed": "2133",
"TotalWidth": "64",
"Attributes": "2",
"ConfiguredClockSpeed": "2133",
"ConfiguredVoltage": "1200",
"DeviceLocator": "ChannelA-DIMM0",
"InterleaveDataDepth": "0",
"MaxVoltage": "1200",
"MinVoltage": "1200",
"SMBIOSMemoryType": "26",
"TypeDetail": "128"
}
{
"Caption": "Physical Memory",
"Description": "Physical Memory",
"Name": "Physical Memory",
"Manufacturer": "04CB",
"SerialNumber": "55960400",
"Tag": "Physical Memory 1",
"FormFactor": "8",
"BankLabel": "BANK 1",
"Capacity": "8589934592",
"DataWidth": "64",
"InterleavePosition": "0",
"MemoryType": "0",
"Speed": "2133",
"TotalWidth": "64",
"Attributes": "2",
"ConfiguredClockSpeed": "2133",
"ConfiguredVoltage": "1200",
"DeviceLocator": "ChannelA-DIMM1",
"InterleaveDataDepth": "0",
"MaxVoltage": "1200",
"MinVoltage": "1200",
"SMBIOSMemoryType": "26",
"TypeDetail": "128"
}
- Example for the OS Info โฌ
Console.WriteLine(new FluentSysInfoCore().GetSystemInfo(FluentSysInfoTypes.OperatingSystem));
And the result from the FluentSysInfo.Core would be something like this :
{
"Status": "OK",
"Name": "Microsoft Windows 10 Enterprise|C:\\Windows|\\Device\\Harddisk1\\Partition3",
"FreePhysicalMemory": "9428600",
"FreeSpaceInPagingFiles": "2479588",
"FreeVirtualMemory": "9278148",
"Caption": "Microsoft Windows 10 Enterprise",
"Description": "Removed! ๐",
"InstallDate": "9/30/2022 1:36:54 PM",
"CSName": "Removed! ๐",
"CurrentTimeZone": "210",
"Distributed": "False",
"LastBootUpTime": "3/21/2024 6:56:09 AM",
"LocalDateTime": "3/21/2024 11:39:42 PM",
"MaxNumberOfProcesses": "4294967295",
"MaxProcessMemorySize": "137438953344",
"NumberOfLicensedUsers": "0",
"NumberOfProcesses": "222",
"NumberOfUsers": "2",
"OSType": "18",
"SizeStoredInPagingFiles": "2490368",
"TotalVirtualMemorySize": "19224724",
"TotalVisibleMemorySize": "16734356",
"Version": "10.0.19045",
"BootDevice": "\\Device\\HarddiskVolume10",
"BuildNumber": "19045",
"BuildType": "Multiprocessor Free",
"CodeSet": "1252",
"CountryCode": "1",
"DataExecutionPrevention_32BitApplications": "True",
"DataExecutionPrevention_Available": "True",
"DataExecutionPrevention_Drivers": "True",
"DataExecutionPrevention_SupportPolicy": "2",
"Debug": "False",
"EncryptionLevel": "256",
"ForegroundApplicationBoost": "2",
"Locale": "0409",
"Manufacturer": "Microsoft Corporation",
"MUILanguages": "{en-US}",
"OperatingSystemSKU": "4",
"OSArchitecture": "64-bit",
"OSLanguage": "1033",
"OSProductSuite": "256",
"PortableOperatingSystem": "False",
"Primary": "True",
"ProductType": "1",
"RegisteredUser": "Shayan",
"SerialNumber": "00329-00000-00003-AA310",
"ServicePackMajorVersion": "0",
"ServicePackMinorVersion": "0",
"SuiteMask": "272",
"SystemDevice": "\\Device\\HarddiskVolume12",
"SystemDirectory": "C:\\Windows\\system32",
"SystemDrive": "C:",
"WindowsDirectory": "C:\\Windows"
}
- How to enable the Fast Response feature ? โฌ
FluentSysInfoCore fluentSysInfoCore = new FluentSysInfoCore();
fluentSysInfoCore.AddFastResponseAgent(FluentSysInfoTypes.InstalledServices, TimeSpan.FromSeconds(5));
fluentSysInfoCore.AddFastResponseAgent(FluentSysInfoTypes.RunningProcesses, TimeSpan.FromSeconds(5));
fluentSysInfoCore.AddFastResponseAgent("CIM_Display", TimeSpan.FromSeconds(5));
fluentSysInfoCore.StartAllFastResponseAgents();
- How to use a custom WMI class name ? โฌ
Console.WriteLine(new FluentSysInfoCore().GetSystemInfo("CIM_Display"));
And the result from the FluentSysInfo.Core would be something like this :
{
"DeviceID": "DesktopMonitor1",
"Name": "HP EliteDisplay E221 LED Backlit Monitor",
"PixelsPerXLogicalInch": "96",
"PixelsPerYLogicalInch": "96",
"Status": "OK",
"Caption": "HP EliteDisplay E221 LED Backlit Monitor",
"Description": "HP EliteDisplay E221 LED Backlit Monitor",
"Availability": "8",
"ConfigManagerErrorCode": "0",
"ConfigManagerUserConfig": "False",
"PNPDeviceID": "DISPLAY\\HWP3061\\5&132B4D04&0&UID4352",
"SystemName": "Removed! ๐ค",
"MonitorManufacturer": "HP",
"MonitorType": "HP EliteDisplay E221 LED Backlit Monitor"
}
Known Issues โผ
Not Reported Yet! ๐
ยฉ License
FluentSysInfo.Core is an open source software, licensed under the terms of MIT license.
See LICENSE for more details.
๐ How to build
Use Visual Studio 2022 and open the solution file FluentSysInfo.Core.sln
FluentSysInfo.Core solution is setup to support following .Net versions :
- .Net Core 8.0
- .Net Core 7.0
- .Net Core 6.0
- .Net Framework 4.8
Note:
Since the FluentSysInfo.Core solution is supporting multi target frameworks , to build the solution successfully you should install all .Net versions above , otherwise you can easily exclude not interested framework(s) by editing TargetFrameworks tag in the FluentSysInfo.Core Project File.
Contributions ๐ค
Since this is a new repository , there's no contributor yet! But FluentSysInfo.Core welcomes and appreciates any contribution , pull request or bug report.
Buy me a coffee for more coding effort ! โ
If you would like to financially support FluentSysInfo.Core, first of all, thank you! Please read DONATIONS for my crypto wallets !
Version History ๐
Please read CHANGELOG for more and track changing details.