vb 计算机信息,VB要想获得电脑信息怎么办??

本文介绍了如何通过Windows注册表API获取系统信息,并展示了如何定位MSINFO32.exe路径,包括使用常量和函数实现的代码片段。涉及的注册表关键字和操作权限有详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'声明:一定在最前面(一定在最前面要不不行)

Option Explicit

' 注册表关键字安全选项。。。

Const READ_CONTROL = &H20000

Const KEY_QUERY_VALUE = &H1

Const KEY_SET_VALUE = &H2

Const KEY_CREATE_SUB_KEY = &H4

Const KEY_ENUMERATE_SUB_KEYS = &H8

Const KEY_NOTIFY = &H10

Const KEY_CREATE_LINK = &H20

Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _

KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _

KEY_NOTIFY KEY_CREATE_LINK + READ_CONTROL

' 注册表关键字 ROOT 类型。

。。

Const HKEY_LOCAL_MACHINE = &H80000002

Const ERROR_SUCCESS = 0

Const REG_SZ = 1 ' 独立的空的终结字符串

Const REG_DWORD = 4 ' 32位数字

Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location"

Const gREGVALSYSINFOLOC = "MSINFO"

Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO"

Const gREGVALSYSINFO = "PATH"

Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long

Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long

' 后面+

Public Sub StartSysInfo()

On Error GoTo SysInfoErr

Dim rc As Long

Dim SysInfoPath As String

' 试图从注册表中获得系统信息程序的路径及名称。

。。

If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then

' 试图仅从注册表中获得系统信息程序的路径。。

ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then

' 已知32位文件版本的有效位置

If (Dir(SysInfoPath & "\MSINFO32。

EXE") <> "") Then

SysInfoPath = SysInfoPath & "\MSINFO32。EXE"

' 错误 - 文件不能被找到。。。

Else

GoTo SysInfoErr

End If

' 错误 - 注册表相应条目不能被找到。

。。

Else

GoTo SysInfoErr

End If

Call Shell(SysInfoPath, vbNormalFocus)

Exit Sub

SysInfoErr:

MsgBox "此时系统信息不可用", vbOKOnly

End Sub

'摁扭1:命名为:cmdSysInfo

Private Sub cmdSysInfo_Click()

Call StartSysInfo

End Sub

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'摁扭1:命名为:cmdSysInfo

'要不点击,直接把我摁扭那部分拷贝在form,load里就行了。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值