香港新浪網 MySinaBlog
« 上一篇 | 下一篇 »
Emily | 27th Nov 2006, 14:10 PM | Script | (1137 Reads)

WMI - Get processor details (Ivan F Moala)

http://xcelfiles.homestead.com/WMI_Processor.html

 

Option Explicit

Sub ProcessorInfo()
Dim WMI As Object
Dim WQL As String
Dim Proc As Object
Dim Procs As Object

On Error Resume Next
Set WMI = GetObject("winmgmts:")
If Err.Number <> 0 Then
    MsgBox "WMI NOT installed!"
End If
On Error GoTo 0

'//WQL (WMI Query Language)
WQL = "select * from win32_processor"

'//
Set Procs = WMI.ExecQuery(WQL)

'//
For Each Proc In Procs
    '// get the info for each processor
    MsgBox Proc.getObjectText_
Next

Set WMI = Nothing
Set Procs = Nothing

End Sub


Sub GetCPUInfo()
Dim objWMIService As Object
Dim objItem As Object
Dim colItems As Object
Dim strComputer As String
Dim Msg As String

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)

For Each objItem In colItems
    Msg = "AddressWidth: " & objItem.AddressWidth
    Msg = Msg & "Architecture: " & objItem.Architecture & vbCrLf
    Msg = Msg & "Availability: " & objItem.Availability & vbCrLf
    Msg = Msg & "Caption: " & objItem.Caption & vbCrLf
    Msg = Msg & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode & vbCrLf
    Msg = Msg & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig & vbCrLf
    Msg = Msg & "CpuStatus: " & objItem.CpuStatus & vbCrLf
    Msg = Msg & "CreationClassName: " & objItem.CreationClassName & vbCrLf
    Msg = Msg & "CurrentClockSpeed: " & objItem.CurrentClockSpeed & vbCrLf
    Msg = Msg & "CurrentVoltage: " & objItem.CurrentVoltage & vbCrLf
    Msg = Msg & "DataWidth: " & objItem.DataWidth & vbCrLf
    Msg = Msg & "Description: " & objItem.Description & vbCrLf
    Msg = Msg & "DeviceID: " & objItem.DeviceID & vbCrLf
    Msg = Msg & "ErrorCleared: " & objItem.ErrorCleared & vbCrLf
    Msg = Msg & "ErrorDescription: " & objItem.ErrorDescription & vbCrLf
    Msg = Msg & "ExtClock: " & objItem.ExtClock & vbCrLf
    Msg = Msg & "Family: " & objItem.Family & vbCrLf
    Msg = Msg & "InstallDate: " & objItem.InstallDate & vbCrLf
    Msg = Msg & "L2CacheSize: " & objItem.L2CacheSize & vbCrLf
    Msg = Msg & "L2CacheSpeed: " & objItem.L2CacheSpeed & vbCrLf
    Msg = Msg & "LastErrorCode: " & objItem.LastErrorCode & vbCrLf
    Msg = Msg & "Level: " & objItem.Level & vbCrLf
    Msg = Msg & "LoadPercentage: " & objItem.LoadPercentage & vbCrLf
    Msg = Msg & "Manufacturer: " & objItem.Manufacturer & vbCrLf
    Msg = Msg & "MaxClockSpeed: " & objItem.MaxClockSpeed & vbCrLf
    Msg = Msg & "Name: " & objItem.Name & vbCrLf
    Msg = Msg & "OtherFamilyDescription: " & objItem.OtherFamilyDescription & vbCrLf
    Msg = Msg & "PNPDeviceID: " & objItem.PNPDeviceID & vbCrLf
    Msg = Msg & "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities & vbCrLf
    Msg = Msg & "PowerManagementSupported: " & objItem.PowerManagementSupported & vbCrLf
    Msg = Msg & "ProcessorId: " & objItem.ProcessorId & vbCrLf
    Msg = Msg & "ProcessorType: " & objItem.ProcessorType & vbCrLf
    Msg = Msg & "Revision: " & objItem.Revision & vbCrLf
    Msg = Msg & "Role: " & objItem.Role & vbCrLf
    Msg = Msg & "SocketDesignation: " & objItem.SocketDesignation & vbCrLf
    Msg = Msg & "Status: " & objItem.Status & vbCrLf
    Msg = Msg & "StatusInfo: " & objItem.StatusInfo & vbCrLf
    Msg = Msg & "Stepping: " & objItem.Stepping & vbCrLf
    Msg = Msg & "SystemCreationClassName: " & objItem.SystemCreationClassName & vbCrLf
    Msg = Msg & "SystemName: " & objItem.SystemName & vbCrLf
    Msg = Msg & "UniqueId: " & objItem.UniqueId & vbCrLf
    Msg = Msg & "UpgradeMethod: " & objItem.UpgradeMethod & vbCrLf
    Msg = Msg & "Version: " & objItem.Version & vbCrLf
    Msg = Msg & "VoltageCaps: " & objItem.VoltageCaps & vbCrLf
    MsgBox Msg, vbInformation, "CPU Info by Ivan F Moala"
Next
End Sub

'

mySinaBlog 不支援斜線,斜線現用全形\取代 ,請改回。