午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    VBS腳本寫的Windows硬件檢測工具分享
    來源:易賢網(wǎng) 閱讀:2312 次 日期:2016-06-30 10:28:50
    溫馨提示:易賢網(wǎng)小編為您整理了“VBS腳本寫的Windows硬件檢測工具分享”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了VBS腳本寫的Windows硬件檢測工具分享,本文直接給出腳本源碼和運行效果圖,需要的朋友可以參考下

    Const MyName = "Windows硬件檢視工具(測試版) --by:Rex.Pack(雷克斯.派)"

    If Not LCase(Replace(WScript.FullName, WScript.Path & "\", "")) = "cscript.exe" Then

        Set WS = CreateObject("WScript.Shell")

        WS.Run "CMD /c mode con: cols=115 & Color 0A & Title " & MyName & " & CScript //nologo """ & WScript.ScriptFullName & """"

        WScript.Quit

    End If

    '----初始化

    Set SD = CreateObject("Scripting.Dictionary")

        SD.CompareMode = vbTextCompare

    Set S = New BaseStr

    Set PC = New BasePC

    Set WMI = GetObject("Winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

    CmdArr = Split(" OS CPU Board Memory Video Disk USB CacheMemory NetWork BIOS Sound Battery PortableBattery" & " S1 S2 S3 S4")

    With SD

        .Add "?", "Call Menu"

        .Add "e", "WScript.Quit"

        For I = 1 To 17

            .Add CStr(I), CmdArr(I)

        Next

        .Add "a", "1-6"

        .Add "b", "7-9"

        .Add "c", "10-13"

        .Add "d", "14-17"

    End With

    Echo MyName

    Call Menu

    Call Main

    '----CO

    Sub Menu()

        Echo "[設(shè)備列表]"

        Echo " 常用組 A: 1.OS  2.CPU   3.主板    4.內(nèi)存    5.顯卡    6.硬盤"

        Echo " 次級組 B: 7.USB 8.緩存    9.網(wǎng)卡"

        Echo " 醬油組 C: 10.BIOS   11.聲卡   電池(12.內(nèi)部 13.便攜)"

        Echo "[測試CPU]"

        Echo " 測試組 D: 14.變量冪次方運算    15.字符疊合 16.加法計算 17.疊加計算"

    End Sub

    Sub Main()

        Print ">": GetNum = Trim(InPut)

        With SD

            If .Exists(GetNum) Then

                If IsNumeric(GetNum) Then

                    Echo Eval("PC." & .Item(GetNum))

                Else

                    ArrLU = Split(.Item(GetNum), "-")

                    For L = ArrLU(0) To ArrLU(1)

                        Echo Eval("PC." & .Item(CStr(L)))

                    Next

                End If

            Else

                Echo "#不支持的命令"

            End If

        End With

        If Not Err.Number = 0 Then Echo ">X": Err.Clear

        Call Main

    End Sub

    'DDC

    Class BaseStr

        Private Strs

        Private Sub Class_Initialize()

            Strs = ""

        End Sub

        Private Sub Class_Terminate()

            Call Cls

        End Sub

        Public Sub Cls()

            Strs = Empty

        End Sub

        Public Property Let I(ByVal Str)

            If Left(Str, 1) = "☆" Then Str = Str & String(80, "=")

            Strs = Strs & vbCrLf & Str

        End Property

        Public Default Property Get I()

            I = Strs

            Cls

        End Property

    End Class

    Class BasePC

        Private DPS

        Private Sub Class_Initialize()

            DPS = 200

        End Sub

        Private Sub Class_Terminate()

            DPS = Empty

        End Sub

        Function S1()

            S1 = "變量冪次方運算 " & DPS & "萬次用時:" & RT("TestVar = I ^ 2", DPS * 10000)

        End Function

        Function S2()

            S2 = "字符疊合 " & DPS & "000次用時:" & RT("TestVar = TestVar & vbTab", DPS * 1000)

        End Function

        Function S3()

            S3 = "加法計算 " & DPS & "萬次用時:" & RT("TestVar = 86 + 32", DPS * 10000)

        End Function

        Function S4()

            S4 = "疊加計算 " & DPS & "萬次用時:" & RT("TestVar = TestVar + I", DPS * 10000)

        End Function

        Private Function RT(ByVal MathExp, ByVal Num)

            Dim NowTimer, NewTimer, TestVar

            NowTimer = Timer

            For I = 1 To Num

                ExeCute MathExp

            Next

            NewTimer = FormatNumber((Timer - NowTimer) * 1000, 3, True, , False) & "ms"

            RT = NewTimer

            TestVar = Empty

        End Function

        Function BIOS()

            On Error Resume Next

            S.I = "☆[BIOS]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_BIOS")

                With TempObj

                    S.I = "┣廠商      :" & .Manufacturer

                    S.I = "┇日期      :" & .ReleaseDate

                    S.I = "┇OEM 版本  :" & .Version

                    S.I = "┇BIOS 版本 :" & .SMBIOSBIOSVersion

                    S.I = "┇Major版本 :" & .SMBIOSMajorVersion

                    S.I = "┇狀態(tài)      :" & .Status

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            BIOS = S

        End Function

        Function OS()

            On Error Resume Next

            S.I = "☆[操作系統(tǒng)]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj in WMI.InstancesOf("Win32_OperatingSystem")

                With TempObj

                    S.I = "┣標(biāo)簽  :" & .Caption

                    S.I = "┇CSDV  :" & .CSDVersion

                    S.I = "┇版本  :" & .Version

                    S.I = "┇RAM識別:" & .TotalVisibleMemorySize / 1024 & "MB"

                    S.I = "┇RAM可用:" & .FreePhysicalMemory / 1024 & "MB"

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            OS = S

        End Function

        Function Board()

            On Error Resume Next

            S.I = "☆[主板]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_BaseBoard")

                With TempObj

                    S.I = "┣標(biāo)簽:" & .Caption

                    S.I = "┇編號:" & .Product

                    S.I = "┇序號:" & .SerialNumber 

                    S.I = "┇名稱:" & .Name

                    S.I = "┇版本:" & .Version

                    S.I = "┇廠商:" & .Manufacturer

                    S.I = "┇狀態(tài):" & .Status

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            Board = S

        End Function

        Function CPU()

            On Error Resume Next

            S.I = "☆[CPU]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_Processor")

                With TempObj

                    MCS = .MaxClockSpeed

                    CCS = .CurrentClockSpeed

                    If MCS Mod 2 = 1 Then MCS = CCS + 1

                    If CCS Mod 2 = 1 Then CCS = CCS + 1

                    If CCS = MCS Then

                        Set SRP = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

                        SRP.GetDWORDValue &H80000002, "HARDWARE\DESCRIPTION\System\CentralProcessor\0", "~MHz", OC

                        Set SRP = Nothing

                    Else

                        OC = CCS

                    End If

                    If OC Mod 2 = 1 Then OC = OC + 1

                    FC = OC - MCS

                    If FC > +10 Then OCLC = "超"

                    If FC < -10 Then OCLC = "降"

                    OCLC = OCLC & "頻比率:" & FormatPercent(FC / MCS, True, True)

                     

                    S.I = "┣CPU 名稱:" & Trim(.Name)

                    S.I = "┇CPU 架構(gòu):" & .Description

                    S.I = "┇制造廠商:" & .Manufacturer

                    S.I = "┇插口規(guī)格:" & .SocketDesignation

                    S.I = "┇CPU 數(shù)量:" & .CpuStatus & "   " & String(.CpuStatus, "※")

                    S.I = "┇核心數(shù)量:" & .NumberOfCores & " " & String(.NumberOfCores, "∷")

                    S.I = "┇線程數(shù)量:" & .NumberOfLogicalProcessors & " " & String(.NumberOfLogicalProcessors, "≈")

                    S.I = "┇地址位寬:" & .AddressWidth & " Bit"

                    S.I = "┇數(shù)據(jù)位寬:" & .DataWidth  & " Bit"

                    S.I = "┇CPU 電壓:" & .CurrentVoltage / 10 & "V"

                    S.I = "┇外部頻率:" & .ExtClock & " MHz"

                    S.I = "┇當(dāng)前頻率:" & OC        & " MHz, " & OCLC

                    S.I = "┇原始頻率:" & MCS       & " MHz"

                    S.I = "┇CPU占用%:" & .LoadPercentage & "%"

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            CPU = S

        End Function

        Function CacheMemory()

            On Error Resume Next

            S.I = "☆[緩存內(nèi)存]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_CacheMemory")

                With TempObj

                    If .MaxCacheSize > 0 Then

                        Select Case .Purpose

                            Case "L1 Cache" AddStr = "(+DataBit)"

                            Case Else

                        End Select

                        S.I = "┇作用位:" & .Purpose & " ID:" & .DeviceID & ":" & .MaxCacheSize & "KB" & AddStr

                        AddStr = ""

                    End If

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            CacheMemory = S

        End Function

        Function Memory()

            On Error Resume Next

            TempArr = Split("Unknown Other DRAM Synchronous-DRAM Cache-DRAM EDO EDRAM VRAM SRAM RAM ROM Flash EEPROM FEPROM EPROM CDRAM 3DRAM SDRAM SGRAM RDRAM DDR DDR-2")

            S.I = "☆[內(nèi)存]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_PhysicalMemory")

                With TempObj

                    S.I = "┣名稱/標(biāo)簽:" & .Name & "/" & .Caption

                    S.I = "┇BL    :" & .BankLabel

                    S.I = "┇槽    :" & .DeviceLocator

                    S.I = "┇容量   :" & .Capacity / 1048576 & "MB"

                    S.I = "┇類型   :" & TempArr(.MemoryType)

                    S.I = "┇速率   :" & .Speed & "MHz"

                    S.I = "┇制造商  :" & .Manufacturer

                    S.I = "┇熱插拔  :" & IIf(.HotSwappable = True, True, False)

                    S.I = "┇總位寬  :" & .TotalWidth

                    S.I = "┇數(shù)據(jù)位寬 :" & .DataWidth

                    S.I = "┇部分序號 :" & .PartNumber

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            Memory = S

        End Function

        Function Video()

            On Error Resume Next

            TempArr1 = Split(" 其他 未知 CGA EGA VGA SVGA MDA HGC MCGA 8514A XGA Linear Frame Buffer" & Space(160 - 14) & "PC-98")

            TempArr2 = Split(" 其他 未知 隔行 逐行")

            S.I = "☆[顯卡]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_VideoController")

                With TempObj

                    S.I = "┣接口   :" & TempArr1(.VideoArchitecture)

                    S.I = "┇名稱   :" & .Name

                    S.I = "┇標(biāo)簽   :" & .Caption

                    S.I = "┇I(xiàn)D    :" & .DeviceID

                    S.I = "┇GPU   :" & .VideoProcessor

                    S.I = "┇制造商  :" & .AdapterCompatibility

                    S.I = "┇物理顯存 :" & .AdapterRAM / 1048576 & "MB"

                    S.I = "┇掃描模式 :" & IIf(.CurrentScanMode = False, False, TempArr2(.CurrentScanMode))

                    S.I = "┇分辨率  :" & .CurrentHorizontalResolution & " x " & .CurrentVerticalResolution

                    S.I = "┇色位盤  :" & .CurrentBitsPerPixel & "Bit"

                    S.I = "┇刷新率  :" & .CurrentRefreshRate & "Hz" & "(" & .MinRefreshRate & "-" & .MaxRefreshRate& ")"

                    S.I = "┇驅(qū)動版本 :" & .DriverVersion

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            Video = S

        End Function

        Function Disk()

            On Error Resume Next

            S.I = "☆[硬盤]"

            For Each TempObj In WMI.InstancesOf("Win32_DiskDrive")

                With TempObj

                    S.I = "┏[磁盤:" & .Index & "]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

                    S.I = "┇名稱  :" & .Name

                    S.I = "┇標(biāo)簽  :" & .Caption

                    S.I = "┇接口  :" & .InterfaceType

                    S.I = "┇制造商 :" & .Manufacturer

                    S.I = "┇序號  :" & .SerialNumber

                    S.I = "┇介質(zhì)描述:" & .Description & "   " & "┇介質(zhì)類型:" & .MediaType

                    S.I = "┇柱面數(shù) :" & .TotalCylinders & "    " & "┇磁頭數(shù) :" & .TotalHeads

                    S.I = "┇標(biāo)準(zhǔn)容量:" & FormatNumber(.Size / 1000000000, 2, True) & "GB" & "   " & "┇實際容量:" & FormatNumber(.Size / 1073741824, 2, True) & "GB"

                    S.I = "┇分區(qū)數(shù)量:" & .Partitions

                    S.I = "┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

                    S.I = "┣[分區(qū)]┳━━━┳━━━━━━━┳━━━━━━━━━━━┳━━━━━┉"

                    S.I = "┇ 索引 ┇主分區(qū)┇容量(GB) ┇塊(大小x數(shù)量)       ┇屬性"

                    S.I = "┣━━━╋━━━╋━━━━━━━╋━━━━━━━━━━━╋━━━━━┉"

                    For Each TempObj0 In WMI.InstancesOf("Win32_DiskPartition")

                        If .Index = TempObj0.DiskIndex Then

                            S.I = "┇ " & TempObj0.Index & _

                            "   ┇" & TempObj0.PrimaryPartition & _

                            "   ┇" & FormatNumber(TempObj0.Size / 1073741824, 2, True) & "GB" & _

                            "   ┇" & TempObj0.BlockSize & "x" & TempObj0.NumberOfBlocks & _

                            "   ┇" & _

                            TIf(TempObj0.BootPartition, "引導(dǎo),") & _

                            TIf(TempObj0.HiddenSectors, "隱藏,") & _

                            TIf(TempObj0.Bootable, "啟動.")

                        End If

                    Next

                    S.I = "┣━━━┻━━━┻━━━━━━━┻━━━━━━━━━━━┻━━━━━┉"

                    S.I = "┣[扇區(qū)]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

                    S.I = "┇磁道扇區(qū):" & .SectorsPerTrack

                    S.I = "┇扇區(qū)大小:" & .BytesPerSector

                    S.I = "┇總扇區(qū)數(shù):" & .TotalSectors

                    S.I = "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

                End With

            Next

            TempArr = Split("未知 可移動磁盤 本地磁盤 網(wǎng)絡(luò)驅(qū)動器 光盤 RAM磁盤   ")

            S.I = "┏[分區(qū)信息]━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

            For Each TempObj1 In CreateObject("Scripting.FileSystemObject").Drives

                With TempObj1

                    If .IsReady Then

                        PTS = Int(.FreeSpace / .TotalSize * 100)

                        S.I = "┇盤符:" & .DriveLetter & " 文件系統(tǒng):" & .FileSystem & "    類型:" & TempArr(.DriveType) & "  卷標(biāo):" & .VolumeName

                        S.I = "┇" & "   空閑率:" & PTS & "%    " & String((100 - PTS) / 5, "■") & String(PTS / 5, "□")

                    Else

                        S.I = "┇盤符:" & .DriveLetter & " 磁盤未準(zhǔn)備好!"

                        S.I = "┇" & "   空閑率:0%  " & "≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡"

                    End If

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┉"

            Disk = S

        End Function

        Function Sound()

            On Error Resume Next

            S.I = "☆[聲卡]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_SoundDevice")

                With TempObj

                    S.I = "┣名稱/標(biāo)簽:" & .Name & "/" & .Caption

                    S.I = "┇I(xiàn)D    :" & .DeviceID

                    S.I = "┇制造商  :" & .Manufacturer

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            Sound = S

        End Function

        Function NetWork()

            On Error Resume Next

            S.I = "☆[網(wǎng)卡]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.ExecQuery("Select * from Win32_NetworkAdapter Where PhysicalAdapter = 'True'")

                With TempObj

                    S.I = "┣[網(wǎng)卡:" & Space(3 - Len(.Index)) & .Index & "]━━━━━━━━┉"

                    S.I = "┇標(biāo)簽 :" & .Caption

                    S.I = "┇PNPDID:" & .PNPDeviceID

                    S.I = "┇制造商:" & .Manufacturer

                    S.I = "┇速率 :" & IIf(TypeName(.Speed) = "Null", False, .Speed / 10000 & "bps")

                    S.I = "┇啟用 :" & .NetEnabled

                    S.I = "┇服務(wù)名:" & .ServiceName

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            NetWork = S

        End Function

        Function Battery()

            On Error Resume Next

            TempArr1 = Split(" 放電 交流電 充滿 低 臨界 充電 充電>高 充電>低 充電>臨界 未定義 部分充電")

            TempArr2 = Split(" 其他 未知 鉛酸 鎘鎳 鎳金屬氫化物 鋰離子 鋅空氣 鋰聚合物")

            S.I = "☆[內(nèi)部電池]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_Battery")

                With TempObj

                    S.I = "┣名稱/標(biāo)簽:" & .Name & "/" & .Caption

                    S.I = "┇I(xiàn)D    :" & .DeviceID

                    S.I = "┇PNPDID  :" & .PNPDeviceID

                    S.I = "┇充電時間 :" & .BatteryRechargeTime

                    S.I = "┇狀態(tài)   :" & TempArr1(.BatteryStatus)

                    S.I = "┇材料   :" & TempArr2(.Chemistry)

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            Battery = S

        End Function

        Function PortableBattery()

            On Error Resume Next

            TempArr1 = Split(" 其他 未知 充滿 低 臨界 充電 充電>高 充電>低 充電>臨界 未定義 部分充電")

            TempArr2 = Split(" 其他 未知 鉛酸 鎘鎳 鎳金屬氫化物 鋰離子 鋅空氣 鋰聚合物")

            S.I = "☆[便攜電池]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_PortableBattery")

                With TempObj

                    S.I = "┣名稱/標(biāo)簽:" & .Name & "/" & .Caption

                    S.I = "┇I(xiàn)D    :" & .DeviceID

                    S.I = "┇PNPDID  :" & .PNPDeviceID

                    S.I = "┇制造商  :" & .Manufacturer

                    S.I = "┇預(yù)計剩余 :" & .EstimatedChargeRemaining

                    S.I = "┇預(yù)計時間 :" & .EstimatedRunTime

                    S.I = "┇電源管理 :" & .PowerManagementSupported

                    S.I = "┇位置   :" & .Location

                    S.I = "┇智能電池 :" & .SmartBatteryVersion

                    S.I = "┇材料   :" & TempArr2(.Chemistry)

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            PortableBattery = S

        End Function

        Function USB()

            On Error Resume Next

            S.I = "☆[USB塢]"

            S.I = "┏━━━━━━━━━━━━━┉"

            For Each TempObj In WMI.InstancesOf("Win32_USBController")

                With TempObj

                    S.I = "┣標(biāo)簽 :" & .Caption

                    S.I = "┇I(xiàn)D  :" & .DeviceID

                    S.I = "┇PNPDID:" & .PNPDeviceID

                    S.I = "┇制造商:" & .Manufacturer

                End With

            Next

            S.I = "┗━━━━━━━━━━━━━┉"

            USB = S

        End Function

    End Class

    '----

        '輸出

        Sub Print(ByVal Texts)

            WScript.StdOut.Write Texts

        End Sub

        Sub Echo(ByVal GEOM_TempData)

            WScript.Echo GEOM_TempData

        End Sub

        '輸出:覆蓋行,空白長度

        Sub PrintC(ByVal Texts, ByVal LenNum)

            WScript.StdOut.Write Chr(13) & Texts & String(LenNum, " ")

        End Sub

        '輸出,+換行

        Sub PrintL(ByVal Texts)

            WScript.StdOut.WriteLine(Texts)

        End Sub

        '輸入

        Function InPut()

            InPut = WScript.StdIn.ReadLine

        End Function

    Function IIf(ByVal GEOM_tf, ByVal GEOM_T, ByVal GEOM_F)

        If GEOM_tf = True Then IIF = GEOM_T Else IIF = GEOM_F

    End Function

    'iif真

    Function TIf(ByVal GEOM_tf, ByVal GEOM_T)

        If GEOM_tf = True Then TIF = GEOM_T

    End Function

    'iif假

    Function FIf(ByVal GEOM_tf, ByVal GEOM_F)

        If GEOM_tf = False Then FIF = GEOM_F

    End Function

    更多信息請查看腳本欄目
    易賢網(wǎng)手機(jī)網(wǎng)站地址:VBS腳本寫的Windows硬件檢測工具分享
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)