FluentSysInfo.Core Provides the accessibility to the various System Informations.
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 π
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
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"
}
Not Reported Yet! π
FluentSysInfo.Core is an open source software, licensed under the terms of MIT license. See LICENSE for more details.
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.
Since this is a new repository , there's no contributor yet! But FluentSysInfo.Core welcomes and appreciates any contribution , pull request or bug report.
If you would like to financially support FluentSysInfo.Core, first of all, thank you! Please read DONATIONS for my crypto wallets !
Please read CHANGELOG for more and track changing details.