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

首頁 > 編程 > VBScript > 正文

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

2020-06-26 18:07:35
字體:
來源:轉載
供稿:網友
問: 
您好,腳本專家!如何確定 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
日韩综合中文字幕| 亚洲欧美中文日韩v在线观看| 欧美亚洲伦理www| 亚洲国产毛片完整版| 亚洲女同精品视频| wwwwwwww亚洲| 97在线免费视频| 亚洲福利视频网| 欧美激情精品久久久久久蜜臀| 日韩美女视频在线观看| 欧美最猛性xxxx| 国产一区二区三区欧美| 欧美成人精品xxx| 亚洲国产美女精品久久久久∴| 精品精品国产国产自在线| 国内揄拍国内精品少妇国语| 91网站在线看| 亚洲精品自产拍| 久久91亚洲人成电影网站| 亚洲欧美日韩在线一区| 精品中文视频在线| 91a在线视频| 亚洲天堂av高清| 亚洲精品福利免费在线观看| 欧美激情欧美激情| 青青久久aⅴ北条麻妃| 91免费看片网站| 久热精品视频在线免费观看| 欧美专区日韩视频| 亚洲日本中文字幕免费在线不卡| 欧美午夜女人视频在线| 亚洲精品福利在线观看| 国产精品自在线| 欧美激情一二三| 欧美激情中文字幕乱码免费| 久久影视电视剧凤归四时歌| 亚洲欧洲一区二区三区在线观看| 激情成人中文字幕| 欧美国产亚洲视频| 亚洲人成电影网站色xx| 久久久久久久影视| 亚洲欧美国产精品| 国产精品∨欧美精品v日韩精品| 国产精品扒开腿做爽爽爽的视频| xvideos成人免费中文版| 亚洲影院色无极综合| 国产综合久久久久| 国产欧美亚洲精品| 亚洲电影成人av99爱色| 成人日韩av在线| 91精品久久久久| 亚洲美女av在线播放| 欧美高清在线视频观看不卡| 久久久久久18| 久热精品视频在线观看一区| 少妇av一区二区三区| 日韩精品视频免费专区在线播放| 国产精品白丝av嫩草影院| 日韩成人在线视频观看| 国产精品尤物福利片在线观看| 国产精品综合网站| 国产精品日韩在线观看| 欧美高清videos高潮hd| 久久久综合av| 欧美亚洲国产日本| 欧美高清在线视频观看不卡| 亚洲人成五月天| 欧美成人一区二区三区电影| 亚洲成人中文字幕| 日韩在线观看免费高清完整版| 日韩精品免费在线视频观看| 欧美日韩一区二区精品| 亚洲国产黄色片| 久久精品国产一区二区电影| 欧美亚洲国产精品| 97精品国产aⅴ7777| 欧美午夜片在线免费观看| 中文字幕免费精品一区| 一本色道久久综合亚洲精品小说| 亚洲精品av在线播放| 久久五月情影视| 日韩精品亚洲精品| 欧美极品少妇全裸体| 9.1国产丝袜在线观看| 日韩美女在线播放| 久久影院免费观看| 国产99久久精品一区二区永久免费| 性欧美视频videos6一9| 日韩欧美综合在线视频| 91国内免费在线视频| 国产精品丝袜久久久久久高清| 98午夜经典影视| 久久黄色av网站| 欧美亚洲午夜视频在线观看| 国产一区二区久久精品| 懂色aⅴ精品一区二区三区蜜月| 国产91ⅴ在线精品免费观看| 久久久久中文字幕2018| 欧美日韩色婷婷| 曰本色欧美视频在线| 欧美激情欧美激情| 日韩av免费观影| 久久久精品电影| 亚洲精品电影网站| 奇米一区二区三区四区久久| 日韩欧美国产黄色| 日本成人免费在线| 日韩精品免费在线视频| 亚洲福利视频久久| 国产精品日本精品| 一区二区三区高清国产| 5278欧美一区二区三区| 日韩在线视频免费观看| 国产成人亚洲综合| 中文字幕在线视频日韩| 亚洲第五色综合网| 91精品国产精品| 中文字幕日韩av电影| 亚洲丝袜在线视频| 欧美日韩在线一区| 欧美电影免费观看高清完整| 国产欧美一区二区三区在线| 色播久久人人爽人人爽人人片视av| 精品久久久久久久久中文字幕| 亚洲欧美精品suv| 国产精品一区=区| 操人视频在线观看欧美| 91在线视频免费| 日韩欧美中文字幕在线播放| 88国产精品欧美一区二区三区| 国产久一一精品| 亚洲天堂av高清| 亚州欧美日韩中文视频| 92国产精品视频| 久久激情视频久久| 97在线精品视频| 亚洲人成亚洲人成在线观看| 91av视频在线观看| 亚洲国产成人精品久久| 黑人巨大精品欧美一区二区三区| 九九视频这里只有精品| 久久综合色88| 色综合久久中文字幕综合网小说| 在线观看国产欧美| 国产精品男人的天堂| 45www国产精品网站| 亚洲一区二区三区sesese| 九九精品在线观看| 日韩美女视频免费看| 成人亚洲激情网| 136fldh精品导航福利| 在线观看亚洲视频| 亚洲精品久久久久久下一站| 欧美第一黄色网| 7777精品久久久久久| 欧美激情第1页| 日韩中文字幕第一页| 九九热精品视频国产| 日本精品久久中文字幕佐佐木| 91国产一区在线| 国产成人综合一区二区三区| 亚洲精品综合久久中文字幕| 亚洲最大的网站| 亚洲三级 欧美三级|