;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
VisualBasic缂栫▼璁块棶WMI瀵硅薄 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> VB >> Internet >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

VisualBasic缂栫▼璁块棶WMI瀵硅薄

鍙戝竷: 2008-7-15 14:40 |  浣滆: 缃戠粶杞浇 |   鏉ユ簮: 缃戠粶杞浇 |  鏌ョ湅: 12娆

銆銆WMI(Windows Management Instrumentation)鎶鏈槸寰蒋鎻愪緵鐨刉indows涓嬬殑绯荤粺绠$悊宸ュ叿銆傞氳繃璇ュ伐鍏峰彲浠ュ湪鏈湴鎴栬呯鐞嗗鎴风绯荤粺涓嚑涔庝竴鍒囩殑淇℃伅銆傚緢澶氫笓涓氱殑缃戠粶绠$悊宸ュ叿閮芥槸鍩轰簬WMI寮鍙戠殑銆傝宸ュ叿鍦╓in2000浠ュ強WinNT涓嬫槸鏍囧噯宸ュ叿锛屽湪Win9X涓嬫槸鎵╁睍瀹夎閫夐」銆傛湰鏂囧皢浠嬬粛濡備綍閫氳繃VB缂栫▼鏉ヨ闂甒MI瀵硅薄鐨勭紪绋嬨

銆銆棣栧厛鏉ョ湅涓涓畝鍗曠殑閫氳繃WMI鑾峰彇绯荤粺淇℃伅鐨勮寖渚嬶紝杩欎釜鑼冧緥閫氳繃WMI瀵硅薄鑾峰緱绯荤粺涓繍琛岀殑鐨勮繘绋嬶細

Function Enum1() As String

銆Dim WMI

銆Set WMI = GetObject("WinMgmts:")

銆Set objs = WMI.InstancesOf("Win32_Process")

銆For Each obj In objs

銆銆Enum1 = Enum1 + obj.Description + Chr(13) + Chr(10)

銆Next

End Function

銆銆鍦ㄤ笂闈㈢殑浠g爜涓紝棣栧厛閫氳繃 GetObject("WinMgmts:")鑾峰緱WMI瀵硅薄锛屽湪WMI瀵硅薄涓嬫湁寰堝鐨勫瓙椤癸紝鍦ㄨ繖閲屾垜浠氳繃WMI.InstancesOf("Win32_Process")鑾峰緱绯荤粺涓墍鏈夌殑杩涚▼鍒楄〃瀛愰」銆

銆銆涓嬮潰鐪嬩竴涓畬鏁寸殑璁块棶WMI瀵硅薄鐨勮寖渚嬶紝杩欎釜鑼冧緥鑾峰緱璁$畻鏈虹殑淇℃伅銆

銆銆寤虹珛涓涓柊宸ョ▼锛屽湪Form1涓坊鍔犱竴涓猅extBox鎺т欢浠ュ強涓涓狢ommandButton鎺т欢锛屽湪CommandButton鐨凜lick浜嬩欢涓啓鍏ヤ互涓嬬殑浠g爜锛

Private Sub Command1_Click()

銆Dim s, System, item

銆Dim i As Integer

銆Set System = GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")

銆For Each item In System

銆銆鈥楲ist1.AddItem item.cputype

銆銆s = "Computer Info" & vbCrLf

銆銆s = s & "***********************" & vbCrLf

銆銆s = s & "璁$畻鏈哄悕绉: " & item.name & vbCrLf

銆銆s = s & "鐘舵: " & item.Status & vbCrLf

銆銆s = s & "绫诲瀷: " & item.SystemType & vbCrLf

銆銆s = s & "鐢熶骇鍘傚: " & item.Manufacturer & vbCrLf

銆銆s = s & "鍨嬪彿: " & item.Model & vbCrLf

銆銆s = s & "鍐呭瓨: ~" & item.totalPhysicalMemory \ 1024000 & "mb" & vbCrLf

銆銆s = s & "鍩: " & item.domain & vbCrLf

銆銆鈥榮 = s & "宸ヤ綔缁" & item.Workgroup & vbCrLf 鈥樿幏寰楀伐浣滅粍鍜屽煙鐨勯夐」涓嶈兘鍚屾椂鐢

銆銆s = s & "褰撳墠鐢ㄦ埛: " & item.username & vbCrLf

銆銆s = s & "鍚姩鐘舵" & item.BootupState & vbCrLf

銆銆s = s & "璇ヨ绠楁満灞炰簬" & item.PrimaryOwnerName & vbCrLf

銆銆s = s & "绯荤粺绫诲瀷" & item.CreationClassName & vbCrLf

銆銆s = s & "璁$畻鏈虹被绫诲瀷" & item.Description & vbCrLf

銆銆For i = 0 To 1 鈥樿繖閲屽亣璁惧畨瑁呬簡涓や釜绯荤粺

銆銆銆s = s & Chr(5) & "鍚姩閫夐」" & i & " :" & item.SystemStartupOptions(i) _

銆銆銆銆銆& vbCrLf

銆銆Next i

銆Next

銆Text1.Text = s

End Sub

銆銆杩愯绋嬪簭锛岀偣鍑籆ommand1锛屽湪textBox涓氨鍙互鏄剧ず璁$畻鏈虹殑淇℃伅銆

銆銆鍦ㄤ笂闈㈢殑浠g爜涓紝绋嬪簭閫氳繃GetObject("winmgmts:")鑾峰緱WMI瀵硅薄锛岀劧鍚庤幏寰椾笅闈㈢殑Win32_ComputerSystem瀛愰」骞堕氳繃璁块棶Win32_ComputerSystem瀵硅薄涓殑鍒嗛」鑾峰緱绯荤粺涓殑淇℃伅銆

銆銆闇瑕佽鏄庣殑鏄紝骞朵笉鏄墍鏈夌殑绯荤粺閮芥敮鎸乄MI锛屽湪鏈変簺绯荤粺涓棤娉曟樉绀虹敓浜у巶瀹剁瓑淇℃伅銆

銆銆鐜板湪鐨勮绠楁満浠ュ強缃戠粶缁勬垚鍗佸垎澶嶆潅銆備緥濡傜郴缁熺‖浠舵柟闈㈠氨鏈変富鏉裤佺‖鐩樸佺綉鍗... 銆

銆銆杞欢鏂归潰鏈夋搷浣滅郴缁熴佺郴缁熶腑瀹夎鐨勮蒋浠躲佹鍦ㄨ繍琛岀殑杩涚▼绛夌瓑銆傜綉缁滄柟闈㈡湁鍩熴佸伐浣滅粍绛夌瓑銆傚埄鐢╓MI鍙互璁块棶涓婇潰鐨勫叏閮ㄤ俊鎭紝浣嗘槸濡傛灉鍚戜笂闈竴鏍风殑鍒╃敤鍒嗛」鏉ヨ闂殑璇濅細寰堥夯鐑︺備负姝わ紝WMI鎻愪緵浜嗕竴绉嶇被浼糞QL璇彞鐨勬煡璇㈣鍙ワ紝鍙互閫氳繃鏌ヨ璇彞鑾峰緱WMI瀵硅薄涓嬬殑瀛愰」銆

銆銆涓嬮潰鏄竴涓亶鍘嗙郴缁熶腑瀹夎鐨勭綉鍗″苟杩斿洖缃戝崱MAC鍦板潃鐨勪唬鐮侊細

Private Function MACAddress() As String

銆Set objs = GetObject("winmgmts:").ExecQuery( _

銆銆"SELECT MACAddress " & _

銆銆"FROM Win32_NetworkAdapter " & _

銆銆"WHERE " & _

銆銆"((MACAddress Is Not NULL) " & _

銆銆"AND (Manufacturer 锛滐紴 " & _

銆銆"鈥楳icrosoft鈥))")

銆For Each obj In objs

銆銆MACAddress = obj.MACAddress

銆銆Exit For

銆Next obj

End Function

銆銆涓婇潰鐨勪唬鐮佽幏寰梂MI瀵硅薄锛岀劧鍚庤繍琛孍xecQuery鎵ц涓涓猈MI鏌ヨ璇彞鑾峰緱瀹夎鐨勭綉鍗″苟杩斿洖缃戝崱鐨凪AC鍦板潃銆

銆銆WMI杩樻敮鎸佷簨浠跺鐞嗭紝璁╃▼搴忓彲浠ュ鐞嗙郴缁熶簨浠讹紝渚嬪绋嬪簭杩愯銆佸叧闂紝鍙Щ鍔ㄩ┍鍔ㄥ櫒鐨勬彃鍏ャ佸彇鍑虹瓑銆備笅闈㈡槸涓涓彲浠ュ绯荤粺涓繍琛岀▼搴忚繘琛岀洃鎺х殑绋嬪簭銆

銆銆棣栧厛寤虹珛涓涓柊宸ョ▼锛岀劧鍚庣偣鍑昏彍鍗曠殑 project | references 椤癸紝鍦╮eferences鍒楄〃涓変腑Microsoft WMI Scripting Library灏哤MI瀵硅薄搴撳姞鍏ュ伐绋嬩腑銆傜劧鍚庡湪Form1涓姞鍏ヤ竴涓狶istBox鎺т欢锛岀劧鍚庡湪Form1涓姞鍏ヤ互涓嬩唬鐮侊細

Option Explicit

Dim Locator As SWbemLocator

Dim Services As SWbemServices

Dim WithEvents StatusSink As SWbemSink

Private Sub KillEvents()

銆StatusSink.Cancel

銆Set StatusSink = Nothing

End Sub

Private Sub Form_Load()

銆Dim Query As String

銆Set StatusSink = New SWbemSink

銆Set Locator = CreateObject("WbemScripting.SWbemLocator")

銆Set Services = Locator.ConnectServer()

銆Query = "SELECT * FROM __InstanceCreationEvent "

銆Query = Query + "WITHIN 1 "

銆Query = Query + "WHERE TargetInstance ISA 鈥榃in32_Process鈥"

銆Services.ExecNotificationQueryAsync StatusSink, Query

End Sub

Private Sub StatusSink_OnObjectReady(ByVal StatusEvent As SWbemObject, _

ByVal EventContext As SWbemNamedValueSet)

銆Dim arr

銆Dim strQue As String

銆Dim i As Integer

銆List1.Clear

銆arr = Split(StatusEvent.GetObjectText_, Chr(10))

銆For i = LBound(arr) To UBound(arr)

銆銆List1.AddItem arr(i)

銆Next i

End Sub

Private Sub StatusSink_OnCompleted(ByVal HResult As WbemErrorEnum, _

ByVal ErrorObject As SWbemObject, _

ByVal EventContext As SWbemNamedValueSet)

If HResult 锛滐紴 wbemErrCallCancelled Then

鈥橀敊璇鐞

End If

End Sub

銆銆鍦ㄤ笂闈㈢殑绋嬪簭涓畾涔変簡涓涓猄WbemSink瀵硅薄StatusSink锛岀劧鍚庡缓绔嬩竴涓猄WbemServices瀵硅薄Server锛屽苟灏哠tatusSink杩炴帴鍒癝erver瀵硅薄涓娿傝繖鏍峰氨鍙互閫氳繃StatusSink鐩戞帶绋嬪簭鐨勮繍琛屻

銆銆杩愯绋嬪簭锛岀劧鍚庝换鎰忚繍琛屼竴涓▼搴忥紝鍦‵orm1鐨凩istBox涓氨鍙互鍒楀嚭杩愯鐨勭▼搴忕殑淇℃伅銆

銆銆WMI搴旂敤鏈寮哄ぇ鐨勪竴闈㈡槸鍙互閫氳繃WEB椤甸潰鏉ュ疄鐜拌繙绋嬬鐞嗐備笅闈㈡垜浠潵寤虹珛涓涓狧TML椤甸潰锛岃椤甸潰鍙互瀹炵幇鍚戜笂闈㈢殑VB绋嬪簭涓鏍峰姩鎬佺洃鎺х郴缁熶腑杩愯鐨勭▼搴忋傜洃鎺х郴缁熶腑绋嬪簭杩愯鐨凥TML浠g爜濡備笅锛

锛渉tml锛

锛渉ead锛

锛渙bject ID="mysink" CLASSID= "CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"锛烇紲/object锛

锛/head锛

锛淪CRIPT锛

銆function window.onload()

銆{

銆銆var locator = new ActiveXObject ("WbemScripting.SWbemLocator");

銆銆var service = locator.ConnectServer();

銆銆szQuery = "SELECT * FROM __InstanceCreationEvent ";

銆銆szQuery += "WITHIN 1 ";

銆銆szQuery += "WHERE TargetInstance ISA 鈥榃in32_Process鈥";

銆銆service.ExecNotificationQueryAsync(mysink,szQuery);

銆}

锛/SCRIPT锛

锛渟cript FOR="mysink" EVENT="OnObjectReady(obj, objAsyncContext)"锛

銆document.all.info.innerHTML += obj.TargetInstance.Name + "锛渂r锛";

锛/script锛

锛渂ody锛

銆锛渟pan ID="info"锛烇紲/span锛

锛/body锛

锛/html锛

銆銆淇濆瓨浠g爜涓篐tm鍚庣紑鐨勯〉闈㈡枃浠躲傚弻鍑绘墦寮缃戦〉锛岀劧鍚庤繍琛屼竴涓▼搴忥紝鍦ㄧ綉椤典笂灏卞彲浠ュ垪鍑鸿繍琛岀殑绋嬪簭鐨勬枃浠跺悕銆

銆銆浠ヤ笂绠瑕佺殑浠嬬粛浜嗕竴涓媁MI鐨勫簲鐢紝瀹為檯涓奧MI瀵硅薄鐨勬搷浣滄槸鍗佸垎澶嶆潅锛屽姛鑳戒篃鏄緢寮哄ぇ鐨勶紝渚嬪浣犲彲浠ラ氳繃WMI鍦ㄦ湇鍔″櫒涓婄洃鎺ф暣涓眬鍩熺綉涓婄殑璁$畻鏈恒佸悜灞鍩熺綉涓婄殑璁$畻鏈烘壒閲忓畨瑁呰蒋浠讹紙渚嬪鏉姣掕蒋浠讹級銆傞氳繃椤甸潰杩滅▼璁块棶鏈嶅姟鍣紝鎺т欢鏈嶅姟鍣ㄨ繍琛岀▼搴忥紝娣诲姞鐢ㄦ埛绛夈傚叧浜庢洿澶氱殑WMI鐨勫簲鐢紝璇昏呭彲浠ヨ闂甅SDN涓奧MI寮鍙戠殑涓婚〉:


銆銆鑾峰彇鏇村淇℃伅銆

TAG: VisualBasic WMI 瀵硅薄 璁块棶
鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆