121 lines
6.5 KiB
Markdown
121 lines
6.5 KiB
Markdown
# LibreHardwareMonitor
|
|
[](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/master/LICENSE) [](https://www.nuget.org/packages/LibreHardwareMonitorLib/) [](https://www.nuget.org/packages/LibreHardwareMonitorLib/) [](https://www.nuget.org/packages/LibreHardwareMonitorLib/)
|
|
|
|
Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.
|
|
|
|
## What's included?
|
|
| Name| .NET | Build Status |
|
|
| --- | --- | --- |
|
|
| **LibreHardwareMonitor** <br /> Windows Forms based application that presents all data in a graphical interface | .NET Framework 4.7.2 <br/> .NET 10.0 | [](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/actions) |
|
|
| **LibreHardwareMonitor.Windows.WinUI** <br /> Modern WinUI 3 based application that presents all data in a fluent graphical interface | .NET 10.0 | [](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/actions) |
|
|
| **LibreHardwareMonitorLib** <br /> Library that allows you to use all features in your own application | .NET Framework 4.7.2 <br/> .NET Standard 2.0 <br/> .NET 8.0, .NET 9.0, and .NET 10.0 | [](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/actions) |
|
|
|
|
## What can it do?
|
|
You can read information from devices such as:
|
|
- Motherboards
|
|
- Intel and AMD processors
|
|
- NVIDIA, AMD and Intel graphics cards
|
|
- HDD, SSD and NVMe hard drives
|
|
- Network cards
|
|
|
|
## Where can I download it?
|
|
You can download the latest release [here](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/releases).
|
|
|
|
### Nightly builds
|
|
If you have a **GitHub** account, you can download nightly builds [here](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/actions). Otherwise, you can download the *latest* nightly build [here](https://nightly.link/LibreHardwareMonitor/LibreHardwareMonitor/workflows/master/master/LibreHardwareMonitor.Windows.Forms.zip).
|
|
|
|
## How can I help improve it?
|
|
The LibreHardwareMonitor team welcomes feedback and contributions!<br/>
|
|
You can check if it works properly on your motherboard. For many manufacturers, the way of reading data differs a bit, so if you notice any inaccuracies, please send us a pull request. If you have any suggestions or improvements, don't hesitate to create an issue.
|
|
|
|
## Developer information
|
|
**Integrate the library in own application**
|
|
1. Add the [LibreHardwareMonitorLib](https://www.nuget.org/packages/LibreHardwareMonitorLib/) NuGet package to your application.
|
|
2. Use the sample code below.
|
|
|
|
|
|
**Sample code**
|
|
```c#
|
|
Computer computer = new Computer
|
|
{
|
|
IsCpuEnabled = true,
|
|
IsGpuEnabled = true,
|
|
IsMemoryEnabled = true,
|
|
IsMotherboardEnabled = true,
|
|
IsControllerEnabled = true,
|
|
IsNetworkEnabled = true,
|
|
IsStorageEnabled = true,
|
|
IsPowerMonitorEnabled = true,
|
|
};
|
|
|
|
computer.Open();
|
|
computer.Accept(new UpdateVisitor());
|
|
|
|
foreach (IHardware hardware in computer.Hardware)
|
|
{
|
|
Console.WriteLine("Hardware: {0}", hardware.Name);
|
|
|
|
foreach (IHardware subhardware in hardware.SubHardware)
|
|
{
|
|
Console.WriteLine("\tSubhardware: {0}", subhardware.Name);
|
|
|
|
foreach (ISensor sensor in subhardware.Sensors)
|
|
Console.WriteLine("\t\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
|
|
}
|
|
|
|
foreach (ISensor sensor in hardware.Sensors)
|
|
Console.WriteLine("\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
|
|
}
|
|
|
|
computer.Close();
|
|
|
|
public class UpdateVisitor : IVisitor
|
|
{
|
|
public void VisitComputer(IComputer computer) => computer.Traverse(this);
|
|
|
|
public void VisitHardware(IHardware hardware)
|
|
{
|
|
hardware.Update();
|
|
foreach (IHardware subHardware in hardware.SubHardware)
|
|
subHardware.Accept(this);
|
|
}
|
|
|
|
public void VisitSensor(ISensor sensor) { }
|
|
|
|
public void VisitParameter(IParameter parameter) { }
|
|
}
|
|
```
|
|
|
|
**Administrator rights**
|
|
|
|
Some sensors require administrator privileges to access the data. Restart your IDE with admin privileges, or add an [app.manifest](https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests) file to your project with requestedExecutionLevel on requireAdministrator.
|
|
|
|
**WinUI 3 Application**
|
|
|
|
The WinUI 3 application is a modern presentation layer that features:
|
|
- **Modern UI**: Clean Fluent Design with Mica material backdrop, supporting system dark and light modes.
|
|
- **Asynchronous Startup**: Progressively loads and updates discovered hardware groups concurrently to prevent startup hangs.
|
|
- **Advanced Graphing**: Interactive, real-time sensor plot views with a configurable floating plot legend overlay.
|
|
- **Secondary Windows**: Configurable floating sensor desktop gadget and pop-out graphs.
|
|
- **Remote Web Server**: Built-in HTTP server to monitor hardware remotely with password-based authentication.
|
|
- **System Tray Integration**: Native tray icon support, taskbar notification bubbles, minimize on close, and start minimized options.
|
|
- **Clean Architecture**: Designed using the MVVM pattern with `Microsoft.Extensions.DependencyInjection` as the composition root.
|
|
|
|
To run or develop the WinUI 3 application, open `LibreHardwareMonitor.sln` in Visual Studio 2022 and run the `LibreHardwareMonitor.Windows.WinUI` project.
|
|
|
|
## Warning
|
|
|
|
We're **not affiliated** with `librehardwaremonitor.com`.<br>
|
|
For your safety, please avoid using that site.
|
|
|
|
## Acknowledgements
|
|
|
|
Many thanks to all contributors listed below, and to JetBrains for providing tooling.
|
|
|
|
<a href="https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/graphs/contributors">
|
|
<img src="https://contrib.rocks/image?repo=LibreHardwareMonitor/LibreHardwareMonitor" />
|
|
</a>
|
|
|
|
## License
|
|
LibreHardwareMonitor is free and open source software licensed under MPL 2.0. Some parts of LibreHardwareMonitor are licensed under different terms, see [THIRD-PARTY-LICENSES](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/master/THIRD-PARTY-NOTICES.txt).
|