VBS实现查询服务的制造商(vb如何查询数据库)深度揭秘

随心笔谈2年前发布 admin
200 0 0

文章摘要

本文描述了一段Visual Basic代码,用于从Windows注册表(winmgmts映射)中提取服务信息。代码的主要步骤如下: 1. 初始化并获取所有Win32服务。 2. 处理文件路径,提取服务路径并获取相关信息。 3. 将服务名称和制造商信息写入文本文件“info.txt”。 4. 使用MsgBox显示完成信息。 代码展示了如何通过注册表进行服务信息的自动化提取和处理,适用于需要定期更新或管理服务的场景。


Set objWMIService=GetObject(“winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2”)
Set Services=objWMIService.ExecQuery(“Select * from Win32_Service”)
Set fso=CreateObject(“Scripting.FileSystemObject”)
Set objShell=CreateObject(“Shell.Application”)
Set objFolder=objShell.NameSpace(0)
i=0
Do
If objFolder.GetDetailsOf(“”, i)=”公司” Then ‘非中文系统自行修改
Exit Do
Else
i=i+1
End If
Loop

For Each objService in Services
path=GetPath(objService.PathName)
IF fso.GetExtensionName(path)=”” Then path=path & “.exe”
Set objFolder=objShell.NameSpace(fso.GetParentFolderName(path))
Set objItem=objFolder.ParseName(fso.GetFileName(path))
comp=objFolder.GetDetailsOf(objItem, i)
If comp=”” Then comp=”未知”
info=info & “服务:”& objService.DisplayName &” 制造商:”& comp & vbCrLF
Next
fso.CreateTextFile(“info.txt”, true).WriteLine info
MsgBox “完成”

Function GetPath(strng)
Dim re
Set re=New RegExp
re.Pattern=”^””?(.+\\[^\\\s””]+).*”
GetPath=re.Replace(strng,”$1″)
Set regEx=Nothing
End Function

© 版权声明

相关文章