Vb6 检查电脑是否为台式机或笔记本电脑等
我使用下面的vb6代码来检查计算机是否为台式机、笔记本电脑等,但该代码工作不正常,并给出运行时错误。我在VB.net中编写了相同的代码,效果很好。当我在vb6中编写代码时,我遇到了错误。我知道我缺少了导致错误的内容。有人能帮我解决错误吗?下面是vb6中的完整代码Vb6 检查电脑是否为台式机或笔记本电脑等,vb6,wmi,runtime-error,Vb6,Wmi,Runtime Error,我使用下面的vb6代码来检查计算机是否为台式机、笔记本电脑等,但该代码工作不正常,并给出运行时错误。我在VB.net中编写了相同的代码,效果很好。当我在vb6中编写代码时,我遇到了错误。我知道我缺少了导致错误的内容。有人能帮我解决错误吗?下面是vb6中的完整代码 Option Explicit Private Sub Command1_Click() Dim oWMI As Object Dim oSystem As Object Dim SQL As String Dim o
Option Explicit
Private Sub Command1_Click()
Dim oWMI As Object
Dim oSystem As Object
Dim SQL As String
Dim objChassis As Object
Dim strChassisType As Object
Dim objWMIService As Object
Dim colChassis As Object
Dim strComputer As String
strComputer = "."
SQL = "Select * from Win32_SystemEnclosure"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery(SQL)
For Each objChassis In colChassis
For Each strChassisType In objChassis.ChassisTypes
Select Case strChassisType
Case 1
MsgBox ("Other")
Case 2
MsgBox ("Unknown")
Case 3
MsgBox ("Desktop")
Case 4
MsgBox ("Low Profile Desktop")
Case 5
MsgBox ("Pizza Box")
Case 6
MsgBox ("Mini Tower")
Case 7
MsgBox ("Tower")
Case 8
MsgBox ("Portable")
Case 9
MsgBox ("Laptop")
Case 10
MsgBox ("Notebook")
Case 11
MsgBox ("Handheld")
Case 12
MsgBox ("Docking Station")
Case 13
MsgBox ("All-in-One")
Case 14
MsgBox ("Sub-Notebook")
Case 15
MsgBox ("Space Saving")
Case 16
MsgBox ("Lunch Box")
Case 17
MsgBox ("Main System Chassis")
Case 18
MsgBox ("Expansion Chassis")
Case 19
MsgBox ("Sub-Chassis")
Case 20
MsgBox ("Bus Expansion Chassis")
Case 21
MsgBox ("Peripheral Chassis")
Case 22
MsgBox ("Storage Chassis")
Case 23
MsgBox ("Rack Mount Chassis")
Case 24
MsgBox ("Sealed-Case PC")
Case Else
MsgBox ("Unknown")
End Select
Next
Next
End Sub
因此,您已经将所有变量声明为Object
,并将其移植到VB6。现在,移植的代码失败并出现错误。会出什么问题
了解相关语言使用的数据类型是值得的。幸运的是,VBScript中的所有变量都是Variant
。根据:
VBScript只有一种称为变量的数据类型。变体是
可以包含不同类型数据的特殊数据类型
信息,取决于其使用方式。因为变异是唯一的
VBScript中的数据类型,也是所有
VBScript中的函数
大多数情况下,您只需将所需的数据类型放入变量中,变量的行为方式最适合其包含的数据
更幸运的是,VB6支持完全相同的变量
数据类型。这就是为什么将变量声明为Variant
可以解决问题的原因:
Dim oWMI
Dim oSystem
Dim SQL
Dim objChassis
Dim strChassisType
Dim objWMIService
Dim colChassis
Dim strComputer
错误消息是什么?运行时错误424 object Required尝试使用变量数据类型而不是object。当我将所有objChassis、STRCHASSYPE、objWMIService和COLCASSIS声明为VariantIf时,问题得到解决。如果您要尝试使用令人讨厌的匈牙利符号,并使用类型前缀,请使您的类型前缀与变量类型匹配<代码>变暗STRCHASSYSTYPE作为对象