国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用WMI取得系統信息

運用WMI取得系統信息

更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

     WMI(Windows Management Instrumentation)技術是微軟提供的Windows下的系統管理工具。通過該工具可以在本地或者管理客戶端系統中幾乎一切的信息。很多專業的網絡管理工具都是基于WMI開發的。該工具在Win2000以及WinNT下是標準工具,在Win9X下是擴展安裝選項。本文將介紹如何通過VB編程來訪問WMI對象的編程。
   首先來看一個簡單的通過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)    NextEnd Function  
    在上面的代碼中,首先通過  GetObject("WinMgmts:")獲得WMI對象,在WMI對象下有很多的子項,在這里我們通過WMI.InstancesOf("Win32_Process")獲得系統中所有的進程列表子項。
    下面看一個完整的訪問WMI對象的范例,這個范例獲得計算機的信息。    建立一個新工程,在Form1中添加一個TextBox控件以及一個CommandButton控件,在CommandButton的Click事件中寫入以下的代碼:

Private Sub Command1_Click()    Dim s, System, item    Dim i As Integer
    Set System = GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")    For Each item In System        'List1.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 = 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  
    運行程序,點擊Command1,在textBox中就可以顯示計算機的信息。
    在上面的代碼中,程序通過GetObject("winmgmts:")獲得WMI對象,然后獲得下面的
Win32_ComputerSystem子項并通過訪問Win32_ComputerSystem對象中的分項獲得系統中的信息。
需要說明的是,并不是所有的系統都支持WMI,在有些系統中無法顯示生產廠家等信息。

    現在的計算機以及網絡組成十分復雜。例如系統硬件方面就有主板、硬盤、網卡... 。
軟件方面有操作系統、系統中安裝的軟件、正在運行的進程等等。網絡方面有域、工作組
等等。利用WMI可以訪問上面的全部信息,但是如果向上面一樣的利用分項來訪問的話會很
麻煩。為此,WMI提供了一種類似SQL語句的查詢語句,可以通過查詢語句獲得WMI對象下的子項。

    下面是一個遍歷系統中安裝的網卡并返回網卡MAC地址的代碼:
Private Function MACAddress() As String

   Set objs = GetObject("winmgmts:").ExecQuery( _
      "SELECT MACAddress " & _
      "FROM Win32_NetworkAdapter " & _
      "WHERE " & _
      "((MACAddress Is Not NULL) " & _
      "AND (Manufacturer <> " & _
      "'Microsoft'))")
   For Each obj In objs
      MACAddress = obj.MACAddress
      Exit For
   Next obj
End Function
    上面的代碼獲得WMI對象,然后運行ExecQuery執行一個WMI查詢語句獲得安裝的網卡并返回
網卡的MAC地址。
    WMI還支持事件處理,讓程序可以處理系統事件,例如程序運行、關閉,可移動驅動器的插入、
取出等。下面是一個可以對系統中運行程序進行監控的程序。
    首先建立一個新工程,然后點擊菜單的 project | references 項,在references列表中選中
Microsoft WMI Scripting Library將WMI對象庫加入工程中。然后在Form1中加入一個ListBox控件,
然后在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 'Win32_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  

    在上面的程序中定義了一個SWbemSink對象StatusSink,然后建立一個SWbemServices對象Server,
并將StatusSink連接到Server對象上。這樣就可以通過StatusSink監控程序的運行。
    運行程序,然后任意運行一個程序,在Form1的ListBox中就可以列出運行的程序的信息。
    WMI應用最強大的一面是可以通過WEB頁面來實現遠程管理。下面我們來建立一個HTML頁面,該頁面
可以實現向上面的VB程序一樣動態監控系統中運行的程序。監控系統中程序運行的HTML代碼如下:

<html>
<head>
<object ID="mysink" CLASSID=
"CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"></object>
</head>
<SCRIPT>
function window.onload()  
{
  var locator = new ActiveXObject ("WbemScripting.SWbemLocator");  
  var service = locator.ConnectServer();  
  szQuery = "SELECT * FROM __InstanceCreationEvent ";  
  szQuery += "WITHIN 1 ";  
  szQuery += "WHERE TargetInstance ISA 'Win32_Process'";  
  service.ExecNotificationQueryAsync(mysink,szQuery);
}
</SCRIPT>
<script FOR="mysink" EVENT="OnObjectReady(obj, objAsyncContext)">  
  document.all.info.innerHTML += obj.TargetInstance.Name + "<br>";  
</script>
<body>
<span ID="info"></span>  
</body>
</html>
    保存代碼為Htm后綴的頁面文件。雙擊打開網頁,然后運行一個程序,在網頁上就可以列出
運行的程序的文件名。

    以上簡要的介紹了一下WMI的應用,實際上WMI對象的操作是十分復雜,功能也是很強大的,例如你可以通過WMI在服務器上監控整個局域網上的計算機、向局域網上的計算機批量安裝軟件(例如殺毒軟件)。通過頁面遠程訪問服務器,控件服務器運行程序,添加用戶等。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        天堂一区二区在线| 欧美色欧美亚洲另类二区| 极品少妇xxxx偷拍精品少妇| 欧美一区午夜精品| 久久国产剧场电影| 国产肉丝袜一区二区| 不卡的av电影| 天天av天天翘天天综合网 | 成人免费高清在线| 亚洲欧洲日韩一区二区三区| 99久久精品国产毛片| 亚洲成av人影院| 久久久午夜精品理论片中文字幕| 国产91精品一区二区麻豆网站 | 99re视频精品| 日av在线不卡| 自拍偷拍亚洲激情| 欧美一级xxx| av在线一区二区三区| 亚洲成人你懂的| 国产日产欧美精品一区二区三区| 97se亚洲国产综合在线| 五月天精品一区二区三区| 国产午夜精品一区二区三区嫩草 | 欧美中文字幕一二三区视频| 美女视频一区二区三区| 国产日产精品一区| 日韩一区二区电影在线| 91麻豆国产福利精品| 另类中文字幕网| 亚洲一区二区三区四区五区黄| 久久一夜天堂av一区二区三区| 精品视频在线免费看| caoporn国产精品| 国产一区在线观看视频| 日本美女视频一区二区| 一区二区三区在线视频免费观看| 日韩欧美中文字幕一区| 欧美优质美女网站| 色综合欧美在线视频区| 成人a免费在线看| 国产精品一二三区| 久久er99精品| 麻豆精品久久精品色综合| 亚洲成人1区2区| 亚洲一区二区四区蜜桃| 亚洲蜜臀av乱码久久精品| 国产欧美一区二区精品仙草咪| 日韩一级完整毛片| 欧美一级久久久久久久大片| 欧美精品久久天天躁| 欧美日韩一区二区在线视频| 色综合久久综合网97色综合| 成人av中文字幕| 国产91对白在线观看九色| 国产一区二区在线视频| 国产在线精品不卡| 国产成人免费在线观看不卡| 国产精品996| 成人动漫一区二区三区| 成a人片亚洲日本久久| 成人污污视频在线观看| 成人h精品动漫一区二区三区| 风间由美一区二区三区在线观看| 国内外成人在线视频| 国产黄色精品视频| 99国产精品一区| 在线观看日韩av先锋影音电影院| 在线一区二区三区四区五区 | 欧美放荡的少妇| 日韩一区二区三区在线观看| 欧美电影免费观看高清完整版在 | 欧美日韩国产bt| 欧美一激情一区二区三区| 精品日韩一区二区三区免费视频| 精品福利视频一区二区三区| 国产亚洲欧美日韩俺去了| 国产精品不卡在线观看| 亚洲一区二区影院| 另类人妖一区二区av| 成人精品小蝌蚪| 欧美三级电影网| 精品成a人在线观看| 亚洲特级片在线| 日韩精品91亚洲二区在线观看 | 亚洲成av人片在线观看| 精油按摩中文字幕久久| 99精品国产99久久久久久白柏| 欧美三级日韩在线| 久久久久88色偷偷免费| 亚洲夂夂婷婷色拍ww47| 精品一区二区三区不卡 | 岛国精品在线观看| 91久久线看在观草草青青| 欧美一区中文字幕| 亚洲三级电影网站| 国产自产v一区二区三区c| 色综合天天综合在线视频| 日韩欧美一级片| 亚洲素人一区二区| 国产精品一区二区在线看| 欧美日韩亚州综合| 成人免费一区二区三区视频| 老司机精品视频导航| 欧美三级日韩在线| 中文字幕亚洲成人| 国产精品888| 精品国产三级a在线观看| 亚洲国产精品人人做人人爽| 国产成人超碰人人澡人人澡| 欧美一区二区精品| 天天综合网 天天综合色| 一本久道中文字幕精品亚洲嫩| 久久久亚洲午夜电影| 日本伊人色综合网| 欧美亚洲综合另类| 亚洲精品视频在线看| 国产精选一区二区三区| 日韩一级二级三级| 日本欧美在线观看| 91精品免费在线| 亚洲成av人片一区二区梦乃| 91久久一区二区| 一区二区三区免费在线观看| 91在线观看高清| 亚洲欧洲综合另类| 欧洲精品中文字幕| 一区二区三区欧美久久| 99久久伊人网影院| 国产精品久久久久久久久果冻传媒| 国产一区二区三区免费看| 26uuu久久天堂性欧美| 国产一区二区调教| 久久久99精品免费观看不卡| 国产精品白丝jk白祙喷水网站| 精品福利视频一区二区三区| 国产乱码精品一区二区三区av | 国产一区福利在线| 精品日韩在线一区| 狠狠网亚洲精品| 欧美激情一区在线| 色综合天天做天天爱| 一区二区三区加勒比av| 欧美日韩免费高清一区色橹橹 | 亚洲444eee在线观看| 欧美久久久久久久久中文字幕| 亚洲二区视频在线| 精品99999| 99久久综合色| 日本视频在线一区| 精品乱码亚洲一区二区不卡| 国产在线看一区| 成人免费在线视频观看| 欧美综合久久久| 免费成人在线观看| 国产欧美日本一区视频| 色美美综合视频| 秋霞电影网一区二区| 中文字幕欧美国产| 欧美日韩一二三| 国产sm精品调教视频网站| 一区二区三区自拍| 精品国产免费久久 | 国产成人免费9x9x人网站视频| 中文字幕在线观看不卡视频| 欧美三级电影网| 国产91在线看| 日韩成人一区二区| 中文一区一区三区高中清不卡| 欧美日韩综合色| 国产成人aaa| 热久久国产精品| 最新不卡av在线| 久久久噜噜噜久久中文字幕色伊伊| www.综合网.com| 免费观看一级欧美片| 亚洲男帅同性gay1069| 欧美精品一区二区三| 欧美伊人久久久久久午夜久久久久| 国产美女一区二区三区| 天堂成人国产精品一区| 中文字幕制服丝袜成人av| 欧美一级日韩一级| 欧美三级中文字| 91在线高清观看| 粉嫩在线一区二区三区视频| 日本欧美加勒比视频| 一区二区成人在线视频| 国产精品日日摸夜夜摸av| 久久九九99视频| 欧美日韩视频第一区| 91尤物视频在线观看| 成人黄色在线视频| 激情深爱一区二区| 男女视频一区二区| 日精品一区二区| 午夜欧美一区二区三区在线播放| ●精品国产综合乱码久久久久 | 制服丝袜激情欧洲亚洲| 91性感美女视频|