![]() |
OPENHARDWAREMONITOR mit WMI
Liste der Anhänge anzeigen (Anzahl: 2)
Der OPENHARDWAREMONITOR mit WMI-Server stellt die Daten für weitere Verwendung zur Verfügung.
![]() Leider enthält er einige kleine Fehler, z.B. einige Bezeichnungen sind falsch... Die Variable OHM : Boolean; hat in dieser DEMO keine Bedeutung.
Delphi-Quellcode:
Tags:
unit Unit2; //2ß140914
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ActiveX, ComObj, Vcl.OleAuto; type TForm2 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; procedure Button1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; OHM : Boolean; const WbemUser =''; WbemPassword =''; WbemComputer ='localhost'; wbemFlagForwardOnly = $00000020; implementation {$R *.dfm} procedure MM(s:string); begin Form2.Memo1.Lines.Add(s); end; procedure TForm2.Button1Click(Sender: TObject); begin Close; end; procedure GetSensorInfo; var FSWbemLocator, FWMIService, FWbemObjectSet, FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\OpenHardwareMonitor', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Sensor','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin MM(Format(' Identifier %s',[String(FWbemObject.Identifier)]));// String MM(Format(' Index %d',[Integer(FWbemObject.Index)]));// Sint32 MM(Format(' InstanceId %s',[String(FWbemObject.InstanceId)]));// String MM(Format(' Max %n',[Double(FWbemObject.Max)]));// Real32 MM(Format(' Min %n',[Double(FWbemObject.Min)]));// Real32 MM(Format(' Name %s',[String(FWbemObject.Name)]));// String MM(Format(' Parent %s',[String(FWbemObject.Parent)]));// String MM(Format(' ProcessId %s',[String(FWbemObject.ProcessId)]));// String MM(Format(' SensorType %s',[String(FWbemObject.SensorType)]));// String MM(Format(' Value %n',[Double(FWbemObject.Value)]));// Real32 MM('----------------------------------------------------------------------'); end; FWbemObject:=Unassigned; end; procedure GetSensorCPUTEMP; var FSWbemLocator, FWMIService, FWbemObjectSet, FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; OHM:= false; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\OpenHardwareMonitor', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name LIKE "%CPU %" AND SensorType = "Temperature"','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin MM(Format(' Name: %s',[String(FWbemObject.Name)]));// String MM(Format(' SensorType %s',[String(FWbemObject.SensorType)]));// String MM(Format(' Value: %n',[Double(FWbemObject.Value)]));// Real32 MM(''); end; OHM:= true; FWbemObject:=Unassigned; end; procedure GetSensorCPULOAD; var FSWbemLocator, FWMIService, FWbemObjectSet, FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; OHM:= false; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\OpenHardwareMonitor', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name LIKE "%CPU %" AND SensorType = "Load"','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin MM(Format(' Name: %s',[String(FWbemObject.Name)]));// String MM(Format(' SensorType %s',[String(FWbemObject.SensorType)]));// String MM(Format(' Value: %n',[Double(FWbemObject.Value)]));// Real32 MM(''); end; OHM:= true; FWbemObject:=Unassigned; end; procedure GetSensorHDD; var FSWbemLocator, FWMIService, FWbemObjectSet, FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; OHM:= false; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\OpenHardwareMonitor', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name = "Temperature" AND SensorType = "Temperature"','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin MM(Format(' Name: %s',[String(FWbemObject.Name)]));// String MM(Format(' SensorType %s',[String(FWbemObject.SensorType)]));// String MM(Format(' Value: %n',[Double(FWbemObject.Value)]));// Real32 end; OHM:= true; FWbemObject:=Unassigned; end; procedure GetSensorGPU; var FSWbemLocator, FWMIService, FWbemObjectSet, FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; OHM:= false; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\OpenHardwareMonitor', WbemUser, WbemPassword); FWbemObjectSet:= // FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name LIKE "%GPU Core%" AND SensorType = "Temperature"','WQL',wbemFlagForwardOnly); // FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name LIKE "%GPU %" AND SensorType = "Temperature"','WQL',wbemFlagForwardOnly); FWMIService.ExecQuery('SELECT * FROM Sensor WHERE Name LIKE "%GPU %"','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin MM(Format(' Name: %s',[String(FWbemObject.Name)]));// String MM(Format(' SensorType %s',[String(FWbemObject.SensorType)]));// String MM(Format(' Value: %n',[Double(FWbemObject.Value)]));// Real32 MM(''); end; OHM:= true; FWbemObject:=Unassigned; end; procedure TForm2.Button2Click(Sender: TObject); //HDD begin Memo1.Clear; GetSensorHDD; end; procedure TForm2.Button3Click(Sender: TObject); begin Memo1.Clear; GetSensorInfo; end; procedure TForm2.Button4Click(Sender: TObject); begin Memo1.Clear; GetSensorGPU; end; procedure TForm2.Button5Click(Sender: TObject); begin Memo1.Clear; GetSensorCPUTEMP; end; procedure TForm2.Button6Click(Sender: TObject); begin Memo1.Clear; GetSensorCPULOAD; end; procedure TForm2.FormCreate(Sender: TObject); begin Form2.Height:= Screen.Height-20; Memo1.Height:= Screen.Height-80; end; procedure TForm2.FormShow(Sender: TObject); begin Application.Title := 'OHM-2014'; GetSensorInfo; end; end. CPU, GPU, HDD Temperaturen und sonstiges Temperaturen lesen (CPU,HDD...) |
AW: OPENHARDWAREMONITOR mit WMI
Zitat:
The Open Hardware Monitor is a free open source software that monitors temperature sensors, fan speeds, voltages, load and clock speeds of a computer. The Open Hardware Monitor supports most hardware monitoring chips found on todays mainboards. The CPU temperature can be monitored by reading the core temperature sensors of Intel and AMD processors. The sensors of ATI and Nvidia video cards as well as SMART hard drive temperature can be displayed. The monitored values can be displayed in the main window, in a customizable desktop gadget, or in the system tray. The free Open Hardware Monitor software runs on 32-bit and 64-bit Microsoft Windows XP / Vista / 7 and any x86 based Linux operating systems without installation. |
AW: OPENHARDWAREMONITOR mit WMI
Paul Werelds hat 2012 die Entwicklung eingestellt.
Tim Koers, Michael Möller und andere entwickeln weiter: Hier gibt es die Version 0.6.1: ![]() ![]() |
AW: OPENHARDWAREMONITOR mit WMI
Release version 0.7.1
Author: moel.mich = Michael Möller Date: Dec 30, 2014 ![]() ![]() |
AW: OPENHARDWAREMONITOR mit WMI
Hallo
Betriebssystem Windows 10 Ich weiß das ist schon ein altes Thema. Ich habe mich ein wenig in WMI eingearbeitet und weiß so ungefähr was das ist. Ich möchte die Sensoren vom Mainboards auslesen und bin auf diesen Post gestoßen. Ich habe das Problem das mein
Delphi-Quellcode:
ungleich null ist
oEnum.Next(1, FWbemObject, iValue)
also keine Werte ausgegeben werden. Auch wenn ich Delphi unter Admin Rechte starte. Hat jemand eine Idee ?? Ich habe erst die openhardwaremonitor-v0.8.0-beta benutzt und nun die openhardwaremonitor-v0.7.1-beta Leider ohne Erfolg. |
AW: OPENHARDWAREMONITOR mit WMI
Ach ja bevor ich das vergesse
Auf ![]() gibt es einen Super WMI Explorer, der hat mir gut geholfen und das ist auch toll zum Thema WMI ![]() Martin Michael |
AW: OPENHARDWAREMONITOR mit WMI
Hoi,
bin mir da nu nicht ganz sicher, aber meines Wissens nach, muss dein Motherboardhersteller auch eine Schnittstelle zur WMI bereitstellen, sonst kannst du da nichts auslesen. Vieleicht ist das hier was für dich (auch von RRUZ): ![]() ![]() |
AW: OPENHARDWAREMONITOR mit WMI
Also , für die Version 0.7.1
habe ich es zu laufen bekommen allerdings muss dann die Applikation gestartet sein, was mich zu meiner nächsten Frage führt . Wie kann man OpenHardwareMonitor im Hintergrundlauf als reiner WMI-COM Server? |
AW: OPENHARDWAREMONITOR mit WMI
Danke Towmuz
![]() Das hört sich ja gut an ! was mich wunder mal funktioniert das auslesen wunderbar und dann wieder gar nicht Also in dem Fall ist es ein ASRock Z87E-ITX Mal sehen werde berichten. |
AW: OPENHARDWAREMONITOR mit WMI
tsmbios wäre eine Super Sache gewesen.
Nur leider in meinem Fall liest es die wichtigen Sachen aus dem Bios nicht aus. Die Idee die dahintersteckt ist aber beeindruckend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz