4
A
回答
2
您可以使用WMI访问风扇转速(以及其他统计信息,如温度)。在Delphi中使用WMI的一个很好的例子是Magenta Systems。
+0
任何想法如何统一主板支持WMI这些天?我不知道答案 - 只是想知道。 – Argalatyr 2009-10-08 22:23:26
9
您可以使用WMI类德尔福Win32_TemperatureProbe和Win32_Fan, 必须导入微软WMIScripting 1.x版库使用成分 - >导入成分 - >导入类型库 - >下一步 - >“选择库” - >下一步 - >将单位添加到项目 - >完成。
请参阅此代码。只是一个简单的例子。
program GetWMI_Info;
{$APPTYPE CONSOLE}
uses
ActiveX,
Variants,
SysUtils,
WbemScripting_TLB in '..\..\..\Documents\RAD Studio\5.0\Imports\WbemScripting_TLB.pas';
procedure ShowTemperatureInfo();
var
WMIServices: ISWbemServices;
Root : ISWbemObjectSet;
Item : Variant;
I : Integer;
begin
{
http://msdn.microsoft.com/en-us/library/aa394493%28VS.85%29.aspx
The Win32_TemperatureProbe WMI class represents the properties of a temperature sensor (electronic thermometer).
Most of the information that the Win32_TemperatureProbe WMI class provides comes from SMBIOS.
Real-time readings for the CurrentReading property cannot be extracted from SMBIOS tables.
For this reason, current implementations of WMI do not populate the CurrentReading property.
The CurrentReading property's presence is reserved for future use.
}
Writeln('Temperature Info');
Writeln('----------------');
WMIServices := CoSWbemLocator.Create.ConnectServer('.', 'root\cimv2','', '', '', '', 0, nil);
Root := WMIServices.ExecQuery('Select * FROM Win32_TemperatureProbe','WQL', 0, nil);
for I := 0 to Root.Count - 1 do
begin
Item := Root.ItemIndex(I);
Writeln('Accuracy '+VarToStr(Item.Accuracy));
Writeln('Availability '+VarToStr(Item.Availability));
Writeln('Caption '+Item.Caption);
Writeln('Config Manager Error Code '+VarToStr(Item.ConfigManagerErrorCode));
Writeln('Config Manager User Config '+VarToStr(Item.ConfigManagerUserConfig));
Writeln('Creation Class Name '+VarToStr(Item.CreationClassName));
Writeln('Current Reading '+VarToStr(Item.CurrentReading));
Writeln('Description '+VarToStr(Item.Description));
Writeln('Device ID '+VarToStr(Item.DeviceID));
Writeln('Error Cleared '+VarToStr(Item.ErrorCleared));
Writeln('Error Description '+VarToStr(Item.ErrorDescription));
Writeln('Install Date '+VarToStr(Item.InstallDate));
Writeln('Is Linear '+VarToStr(Item.IsLinear));
Writeln('Last Error Code '+VarToStr(Item.LastErrorCode));
Writeln('Lower Threshold Critical '+VarToStr(Item.LowerThresholdCritical));
Writeln('Lower Threshold Fatal '+VarToStr(Item.LowerThresholdFatal));
Writeln('Lower Threshold NonCritical '+VarToStr(Item.LowerThresholdNonCritical));
Writeln('Max Readable '+VarToStr(Item.MaxReadable));
Writeln('Min Readable '+VarToStr(Item.MinReadable));
Writeln('Name '+VarToStr(Item.Name));
Writeln('Nominal Reading '+VarToStr(Item.NominalReading));
Writeln('Normal Max '+VarToStr(Item.NormalMax));
Writeln('Normal Min '+VarToStr(Item.NormalMin));
Writeln('PNP Device ID '+VarToStr(Item.PNPDeviceID));
Writeln('Power Management Capabilities '+VarToStr(Item.PowerManagementCapabilities));
Writeln('Power Management Supported '+VarToStr(Item.PowerManagementSupported));
Writeln('Resolution '+VarToStr(Item.Resolution));
Writeln('Status '+VarToStr(Item.Status));
Writeln('Status Info '+VarToStr(Item.StatusInfo));
Writeln('System Creation Class Name '+VarToStr(Item.SystemCreationClassName));
Writeln('System Name '+VarToStr(Item.SystemName));
Writeln('Tolerance '+VarToStr(Item.Tolerance));
Writeln('Upper Threshold Critical '+VarToStr(Item.UpperThresholdCritical));
Writeln('Upper Threshold Fatal '+VarToStr(Item.UpperThresholdFatal));
Writeln('Upper Threshold NonCritical '+VarToStr(Item.UpperThresholdNonCritical));
Writeln('');
end;
end;
procedure ShowCPUFanInfo();
var
WMIServices: ISWbemServices;
Root : ISWbemObjectSet;
Item : Variant;
I : Integer;
begin
{
http://msdn.microsoft.com/en-us/library/aa394146%28VS.85%29.aspx
The Win32_Fan WMI class represents the properties of a fan device in the computer system. For example, the CPU cooling fan.
}
Writeln('CPU FAN Info');
Writeln('----------------');
WMIServices := CoSWbemLocator.Create.ConnectServer('.', 'root\cimv2','', '', '', '', 0, nil);
Root := WMIServices.ExecQuery('Select * FROM Win32_Fan','WQL', 0, nil);
for I := 0 to Root.Count - 1 do
begin
Item := Root.ItemIndex(I);
Writeln('ActiveCooling '+VarToStr(Item.ActiveCooling));
Writeln('Availability '+VarToStr(Item.Availability));
Writeln('Caption '+VarToStr(Item.Caption));
Writeln('Config Manager ErrorCode '+VarToStr(Item.ConfigManagerErrorCode));
Writeln('Config Manager UserConfig '+VarToStr(Item.ConfigManagerUserConfig));
Writeln('Creation ClassName '+VarToStr(Item.CreationClassName));
Writeln('Description '+VarToStr(Item.Description));
Writeln('DesiredSpeed '+VarToStr(Item.DesiredSpeed));
Writeln('DeviceID '+VarToStr(Item.DeviceID));
Writeln('ErrorCleared '+VarToStr(Item.ErrorCleared));
Writeln('ErrorDescription '+VarToStr(Item.ErrorDescription));
Writeln('InstallDate '+VarToStr(Item.InstallDate));
Writeln('LastErrorCode '+VarToStr(Item.LastErrorCode));
Writeln('Name '+VarToStr(Item.Name));
Writeln('PNPDeviceID '+VarToStr(Item.PNPDeviceID));
Writeln('PowerManagement Capabilities '+VarToStr(Item.PowerManagementCapabilities));
Writeln('PowerManagement Supported '+VarToStr(Item.PowerManagementSupported));
Writeln('Status '+VarToStr(Item.Status));
Writeln('StatusInfo '+VarToStr(Item.StatusInfo));
Writeln('SystemCreation ClassName '+VarToStr(Item.SystemCreationClassName));
Writeln('SystemName '+VarToStr(Item.SystemName));
Writeln('VariableSpeed '+VarToStr(Item.VariableSpeed));
Writeln('');
end;
End;
begin
try
CoInitialize(nil);
ShowTemperatureInfo();
ShowCPUFanInfo();
Readln;
CoUninitialize;
except
on E:Exception do
Begin
CoUninitialize;
Writeln(E.Classname, ': ', E.Message);
Readln;
End;
end;
end.
相关问题
- 1. 控制风扇速度
- 2. 控制风扇转速(CPU)
- 3. 如何在OS X上获取CPU温度和风扇速度?
- 4. 用python控制风扇速度并检测pc的内部温度?
- 5. 使用JButton控制风扇的速度
- 6. 吐温移动速度控制
- 7. 如何使用OpenHardwareMonitor lib获得CPU风扇速度?
- 8. 控制虚拟CPU的时钟速度?
- 9. 使用开放式硬件监控器获取CPU温度
- 10. JavaScript速度监控工具?
- 11. iphone音频速度控制编程
- 12. JavaScript:如何控制进度速度?
- 13. 控制程序中的计算速度
- 14. 开源软件来控制电脑风扇转速
- 15. 哪个python模块用于读取WINDOWS中的CPU温度和处理器风扇速度..?
- 16. 如何获得CPU温度?
- 17. 从Delphi中读取Windows中无WMI支持的芯片组的温度和风扇速度
- 18. 摄氏温度到华氏温度计算器控制台应用程序C#
- 19. 减速控制台速度
- 20. 设置风扇速度在C#
- 21. Raspberry Pi CPU温度
- 22. 如何在温度/湿度> 26c,60%的情况下运行风扇?
- 23. 温度程序
- 24. Web浏览器速度过快,如何控制速度?
- 25. 如何控制Jquery Testimonial速度
- 26. 如何控制动画速度?
- 27. 如何控制动画速度(requestAnimationFrame)?
- 28. 如何控制jquery动画速度
- 29. 如何控制JCarousel Vertical Scroller速度?
- 30. 如何控制动画GIF的速度?
你想用它做什么? – 2009-10-08 18:23:35