亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

用vbs確定可移動驅動器的連接時間

2020-07-26 12:02:48
字體:
來源:轉載
供稿:網友
問:
您好,腳本專家!如何確定 USB 閃存驅動器的連接時間?
-- PS
答:
您好,PS。是的,我們承認:腳本專家確實懶惰。(尤其是在周五,這一天我們必須編寫周一專欄。)可能有一種方法能夠專門監視何時插入 USB 閃存驅動器。但是,我們找不到這種方法,至少不能馬上找到它。不可否認,或許我們可能感覺有點困難。但是,我們還是決定編寫一個腳本,用來告訴您任何可移動驅動器與計算機連接(或斷開連接)的時間。我們希望這樣可以為您提供一些附加價值和靈活性。
嗨,我們并沒有說我們確實已為您提供了附加價值和靈活性。我們只是希望自己能夠做到。
實際上,這是一個容易編寫的小腳本。另外,它還有一個優點,就是能夠在任意版本的 Windows 上運行。(最初,我們曾經不加思索地想要使用 Win32_VolumeChangeEvent 類來完成這項任務,但是,該特定 WMI 類只能在 Windows Server 2003 上找到。)
該段代碼如下所示:
復制代碼 代碼如下:

strComputer = "." 
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") 
Set colEvents = objWMIService.ExecNotificationQuery _ 
    ("Select * From __InstanceOperationEvent Within 10 Where " _ 
        & "TargetInstance isa 'Win32_LogicalDisk'") 
Do While True 
    Set objEvent = colEvents.NextEvent 
    If objEvent.TargetInstance.DriveType = 2 Then  
        Select Case objEvent.Path_.Class 
            Case "__InstanceCreationEvent" 
                Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _ 
                    " has been added." 
            Case "__InstanceDeletionEvent" 
                Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _ 
                    " has been removed." 
        End Select 
    End If 
Loop 

是的,它確實類似于幾天前我們向您展示的屏幕保護程序監視腳本。我們希望重復使用同一個腳本為您提供附加價值和靈活性。(盡管這主要是確保我們能夠節省精力。) 
此腳本首先連接到本地計算機上的 WMI 服務。然后,我們發出以下查詢:
Set colEvents = objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 10 Where " _
        & "TargetInstance ISA 'Win32_LogicalDisk'")
這個查詢起什么作用呢?嗯,這里我們要使用 ExecNotificationQuery 方法來訂閱一組特定的 WMI 事件。什么 WMI 事件?(伙計,您的問題太多了,不是嗎?)在本例中,我們希望在每次更改 Win32_LogicalDisk 類的實例時我們都會得到通知。正如您馬上就能看到的,這些更改將包括:為該類創建一個新實例(即,添加一個可移動驅動器)和刪除該類的一個現有實例(即,取下一個可移動驅動器)。Within 10 只是意味著每 10 秒鐘我們將檢查一次,看看是否有任何 Win32_LogicalDisk 實例發生了變化。 
是的,這也意味著,如果您插入了一個可移動驅動器,然后在 6 秒鐘后將其取出,那么我們可能永遠也不會知道這件事。如果這是個問題,那么將 10 改為一個更小的數值。也可以將 10 改為一個更大的數值。例如,將 10 改為 60,就會每 60 秒鐘進行一次檢查,而不是每 10 秒鐘。
明白了嗎?我們甚至將附加價值和靈活性加入了代碼自身中!
然后,我們建立一個不停運行的 Do 循環::
Do While True
接下來我們遇到了下面這行代碼:
Set objEvent = colEvents.NextEvent
正如我們在上一專欄中說過的,這行代碼將使腳本“中斷”,意思就是腳本將暫停在此行,直到 Win32_LogicalDisk 類發生變化為止。這種變化(可以是創建了新實例或者是刪除/修改了一個現有實例)將使腳本執行 Do 循環中的其余代碼行。
好問題:剩下那些行代碼究竟要做什么?嗯,首先看一下生成事件的驅動器是否恰好為可移動驅動器(至少就 WMI 而言,DriveType 為 2):
If objEvent.TargetInstance.DriveType = 2 Then
如果 DriveType 不是 2,那么我們只能再循環并等待下一個事件的發生。如果 DriveType 等于 2,那么我們使用 Select Case 塊來確定發生的是哪種類型的事件。我們可通過確定事件的 Class 來執行此操作:
Select Case objEvent.Path_.Class
為什么這樣做?有兩個原因:首先,我們并不關心現有實例所發生的任何變化。例如,我們并不關心驅動器 C 上的可用驅動器空間是否發生了變化。如果您看一下 Select Case 代碼,您就會注意到我們并不去費神檢查 __InstanceModificationEvent。為什么不呢?因為我們并不關心 __InstanceModificationEvent(以某種方式修改現有實例時生成的事件的類型)。
其次,我們想要對 __InstanceCreationEvent(它會告訴我們已經創建了一個新驅動器)和 __InstanceDeletionEvent(它會告訴我們已經刪除了一個現有驅動器)加以區別。通過確定事件類型,我們可以回顯不同(并相應)的消息。例如,下面是用于確定是否創建了新驅動器的代碼,如果是,則回顯一條用于指示該結果的消息:
Case "__InstanceCreationEvent"
    Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
        " has been added."
下面是用于通知我們是否刪除了現有驅動器的代碼:
Case "__InstanceDeletionEvent"
    Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
        " has been removed."
回顯相應的消息后,我們再循環并等待下一個事件的發生。默認情況下,該腳本將永遠運行下去,或者至少在您終止該腳本進程之前會是這樣。先發生哪種情況就先執行哪段代碼。
正如我們說過的,這并不是您真正想要的,但是它確實能夠達到這一目的。哦,不要忘了附加價值和靈活性。這應該足以彌補一個事實,那就是我們并沒有真正回答您的問題。(我們希望我們已經解答了該問題的一個方面。不過這不是您的問題。)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩一区二区精品| 久久夜色精品国产| 91嫩草在线视频| 92国产精品久久久久首页| 色哟哟入口国产精品| 成人亚洲欧美一区二区三区| 一区二区三欧美| 色天天综合狠狠色| 日韩欧美在线网址| 久久天天躁狠狠躁夜夜爽蜜月| 青青久久av北条麻妃海外网| 日韩成人在线视频网站| 91国语精品自产拍在线观看性色| 91精品久久久久久| 欧美黑人巨大精品一区二区| 亚洲福利在线播放| zzijzzij亚洲日本成熟少妇| 中文字幕日韩精品在线观看| 久久精品影视伊人网| 亚洲少妇激情视频| 国产欧美精品久久久| 国产区精品在线观看| 国内精品一区二区三区| 青草青草久热精品视频在线观看| 国产欧美婷婷中文| 成人欧美一区二区三区在线| 91九色国产社区在线观看| 91精品国产91久久久久久吃药| 亚洲欧美日韩国产中文| 亚洲色图日韩av| 久久久国产影院| 国产精品99久久99久久久二8| 国产精品r级在线| 91av网站在线播放| 欧美极品少妇全裸体| 亚洲3p在线观看| 欧美亚洲激情在线| 国产婷婷成人久久av免费高清| 疯狂欧美牲乱大交777| 日韩在线视频线视频免费网站| 国产精品1区2区在线观看| 日韩激情视频在线播放| 欧美精品在线观看91| www.亚洲免费视频| 中文字幕精品在线视频| 久久精品视频99| 欧美激情一区二区三级高清视频| 日韩精品视频免费专区在线播放| 91在线观看欧美日韩| 亚洲欧美在线第一页| 日韩在线观看网站| 亚洲天堂久久av| 国产精品福利网| 国产一区二区香蕉| 97在线视频一区| 欧美片一区二区三区| 97视频com| 欧美电影电视剧在线观看| 国产一区二区成人| 欧美一级免费视频| 欧美最顶级的aⅴ艳星| 社区色欧美激情 | 日韩av在线网站| 欧美天堂在线观看| 欧美丰满少妇xxxx| 日韩精品日韩在线观看| 国产精品大陆在线观看| 91高清免费视频| 亚洲人成电影网站色xx| 91九色蝌蚪国产| 亚洲精品久久久久久久久久久| 色婷婷av一区二区三区久久| 成人免费视频网| 538国产精品一区二区在线| 亚洲大尺度美女在线| 欧美一级电影在线| 欧美一级电影免费在线观看| 国产欧美在线看| 国产精品扒开腿做爽爽爽视频| 欧美电影在线观看网站| 国产精品福利无圣光在线一区| 日韩高清中文字幕| 视频在线一区二区| 国外日韩电影在线观看| 91精品国产91久久久久久不卡| 日韩中文字幕视频| 综合网日日天干夜夜久久| 精品一区二区三区四区在线| 亚洲成人av在线| 亚洲白虎美女被爆操| 欧美激情综合亚洲一二区| 欧美在线视频一二三| 97成人超碰免| 亚洲一区二区三| 国产男人精品视频| 日韩视频在线免费观看| 亚洲激情久久久| 国产日韩欧美中文在线播放| 这里只有精品视频| 久久久久国产一区二区三区| 国产精品99久久久久久久久久久久| 91av福利视频| 国产日韩中文字幕在线| 色久欧美在线视频观看| 91日本在线视频| 久久久久久久久久久av| 国产精品r级在线| 97视频在线观看免费高清完整版在线观看| 国产丝袜视频一区| xvideos成人免费中文版| 欧美激情在线有限公司| 国产欧美久久久久久| 欧美在线观看网址综合| 久久人人爽国产| 91麻豆国产语对白在线观看| 亚洲最大成人免费视频| 亚洲人成欧美中文字幕| 中文字幕日韩高清| 78m国产成人精品视频| 一本色道久久88精品综合| 亚洲综合在线小说| 国产91亚洲精品| 青草青草久热精品视频在线网站| 91伊人影院在线播放| 久久99热精品| 欧美插天视频在线播放| 浅井舞香一区二区| 国产精品69久久| 日韩免费在线视频| 亚洲自拍在线观看| 91免费国产网站| 亚洲自拍偷拍一区| 不卡在线观看电视剧完整版| 日韩电影中文字幕在线| 久久综合免费视频影院| 亚洲激情自拍图| 久久久噜噜噜久噜久久| 欧美人在线观看| 97免费视频在线| 日韩免费在线免费观看| 91免费电影网站| 欧美色视频日本高清在线观看| 日韩一区av在线| 欧美国产极速在线| 2019中文在线观看| 国产精品 欧美在线| 亚洲欧美999| 亚洲欧美日韩直播| 国产性色av一区二区| 国产97在线观看| 亚洲精品国偷自产在线99热| 欧美亚洲视频一区二区| 日韩av中文字幕在线| 亚洲一区二区黄| 久久久久久久久国产精品| 欧美一级免费视频| 国产伊人精品在线| 在线精品高清中文字幕| 在线看福利67194| 精品视频久久久久久久| 国产精品一区二区久久精品| 国产一区二区三区三区在线观看| 日韩中文在线视频| 狠狠综合久久av一区二区小说|