雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

vb

當(dāng)前位置:主頁(yè) > 軟件編程 > vb >

VBS實(shí)現(xiàn)查詢服務(wù)的制造商

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:vb|點(diǎn)擊:

一個(gè)網(wǎng)友提問(wèn):

select * from win32_service 這個(gè)能查服務(wù)名稱、狀態(tài)……

但我想查這個(gè)服務(wù)的制造商,如微軟、農(nóng)業(yè)銀行,還是未知的??這個(gè)屬性是什么,謝謝……

我發(fā)現(xiàn)msconfig中可以看見(jiàn)的,但無(wú)法提取

下面給出解答,一種間接方法:

根據(jù)服務(wù)名獲取到關(guān)聯(lián)的主程序,再?gòu)闹鞒绦颢@取制造商

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 '非中文系統(tǒng)自行修改
    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 & "服務(wù):"& 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

是不是非常不錯(cuò)的解法,小伙伴們可以學(xué)習(xí)下。

上一篇:VBS調(diào)用WMI遍歷搜索硬盤(pán)文件并計(jì)數(shù)的方法

欄    目:vb

下一篇:VB.NET調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法

本文標(biāo)題:VBS實(shí)現(xiàn)查詢服務(wù)的制造商

本文地址:http://m.jygsgssxh.com/a1/vb/7160.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有