• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >vbs > VBS脚本写的Windows硬件检测工具分享

VBS脚本写的Windows硬件检测工具分享

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了windows vbs脚本,vbs脚本,.vbs脚本引擎,wincc vbs脚本手册,没有vbs脚本引擎等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
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 "[设备列表]"
	Echo " 常用组 A: 1.OS	2.CPU	3.主板	4.内存	5.显卡	6.硬盘"
	Echo " 次级组 B: 7.USB	8.缓存	9.网卡"
	Echo " 酱油组 C: 10.BIOS	11.声卡	电池(12.内部 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 = "┇状态		:" & .Status
			End With
		Next
		S.I = "┗━━━━━━━━━━━━━┉"
		BIOS = S
	End Function

	Function OS()
		On Error Resume Next
		S.I = "☆[操作系统]"
		S.I = "┏━━━━━━━━━━━━━┉"
		For Each TempObj in WMI.InstancesOf("Win32_OperatingSystem")
			With TempObj
				S.I = "┣标签  :" & .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 = "┣标签:" & .Caption
				S.I = "┇编号:" & .Product
				S.I = "┇序号:" & .SerialNumber 
				S.I = "┇名称:" & .Name
				S.I = "┇版本:" & .Version
				S.I = "┇厂商:" & .Manufacturer
				S.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 架构:" & .Description
				S.I = "┇制造厂商:" & .Manufacturer
				S.I = "┇插口规格:" & .SocketDesignation
				S.I = "┇CPU 数量:" & .CpuStatus & "	" & String(.CpuStatus, "※")
				S.I = "┇核心数量:" & .NumberOfCores & "	" & String(.NumberOfCores, "∷")
				S.I = "┇线程数量:" & .NumberOfLogicalProcessors & "	" & String(.NumberOfLogicalProcessors, "≈")
				S.I = "┇地址位宽:" & .AddressWidth & " Bit"
				S.I = "┇数据位宽:" & .DataWidth  & " Bit"
				S.I = "┇CPU 电压:" & .CurrentVoltage / 10 & "V"
				S.I = "┇外部频率:" & .ExtClock & " MHz"
				S.I = "┇当前频率:" & 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 = "☆[缓存内存]"
		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 = "☆[内存]"
		S.I = "┏━━━━━━━━━━━━━┉"
		For Each TempObj In WMI.InstancesOf("Win32_PhysicalMemory")
			With TempObj
				S.I = "┣名称/标签:" & .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 = "┇数据位宽 :" & .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
  


 

您可能想查找下面的文章:

  • VBS脚本写的Windows硬件检测工具分享
  • VBS 脚本不能运行 提示Windows无法访问指定设备路径或文件
  • vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
  • 用VBS脚本实现更换Windows Xp序列号的代码
  • WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码

相关文章

  • VBScript中On Error语句用法小结
  • 提权vbs代码
  • Windows Script Host之用vbs实现[浏览文件夹]功能
  • vbs 获取当前目录文件数量的代码(不包括子文件夹中的)
  • ProcessMagnifier.vbs进程查看
  • 让IIS建立的站点默认是.net 2.0的,而不是.net 1.1的代码
  • vbs的sort排序
  • 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
  • 用vbscript实现在消息框中显示一个超链接
  • VBS教程:函数-UCase 函数

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • VBS教程:函数-GetLocale 函数
    • VBS教程:VBScript 基础-使用循环语句
    • VBS教程:VBScript 基础-VBScript 过程
    • VBS教程:属性-CompareMode 属性
    • 用VBS脚本实现更换Windows Xp序列号的代码
    • VBS读网页的代码
    • 用VBS实现音乐播放的多个代码小结
    • VBS调用WMI实现搜索硬盘mp3文件
    • 一个最简单的vbs类实例代码
    • 好玩的vbs特色代码第1/6页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有