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

首頁 > 編程 > VBScript > 正文

用vbs記錄屏幕保護程序的開始時間和結束時間

2020-07-26 12:02:44
字體:
來源:轉載
供稿:網友
問:
您好,腳本專家!如何記錄屏幕保護程序的開始時間和結束時間?
-- JS
答:
您好,JS。您知道,一位腳本專家(嘿,誰說“肯定是 Greg”?)年紀大得記得屏幕保護程序剛出現的日子。那時,這類腳本毫無意義。畢竟,屏幕保護程序啟動后,每個人都神魂顛倒,從未想過讓它結束。事實上,作為計算機支持人員的這位腳本專家首先必須做的一件事就是在每個人的桌面上創建快捷方式,使他們能夠隨時啟動“飛轉的小烤爐”。
那時人們很容易得到快樂。
啊,但是活在過去沒有意義,對吧?在今天的現代社會中,顯然不僅需要停止屏幕保護程序,還需要記錄停止的時間。明確這一點后,讓我們來看一看下面這個 WMI 事件監控腳本,它會跟蹤屏幕保護程序的每次啟動和停止:
復制代碼 代碼如下:

strComputer = "." 
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") 
Set objEventSource = objWMIService.ExecNotificationQuery _ 
    ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process'") 
Do While True 
    Set objEventObject = objEventSource.NextEvent() 
        If Right(objEventObject.TargetInstance.Name, 4) = ".scr" Then 
        Select Case objEventObject.Path_.Class 
            Case "__InstanceCreationEvent" 
                Wscript.Echo "Screensaver " & objEventObject.TargetInstance.Name & _ 
                    " started: " & Now 
            Case "__InstanceDeletionEvent" 
                Wscript.Echo "Screensaver " & objEventObject.TargetInstance.Name & _ 
                    " ended: " & Now 
        End Select 
    End If 
Loop 
它看起來的確有點復雜,不是嗎?但是別慌:就設計而言,WMI 事件腳本總是看起來有點復雜。幸運的是,這些腳本只是看起來復雜;您會看到,這些腳本實際上并不那么難理解。
注意:好吧,我們最好對最后一句陳述加以限定:只要您了解 WMI 事件構成的基本思想,就不那么難理解。如果您還不了解,最好花點時間看看腳本編寫第 2 周網絡廣播。這個網絡廣播將為您提供了理解今天專欄文章所需的所有背景信息。
好主意!盡管可能沒有有助于搞清楚我們的某一篇專欄文章的信息,但至少有助于搞清楚這個腳本代碼的意思。
這個特定腳本的開始是以歷史悠久的方式連接到本地計算機上的 WMI 服務。通常到這里,我們要執行 WMI 查詢以返回信息。正如您所看到的,在這個腳本中我們也要這么做,只是查詢看起來有點不同:
Set objEventSource = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process'")
不用說,這不是您所習慣編寫的 WMI 查詢類型,因為我們調用的是 ExecNotificationQuery 方法,而不是 ExecQuery。(為什么呢?因為要監控 WMI 事件,就必須使用 ExecNotificationQuery 方法。)今天我們無法詳細解釋這個查詢,但我們可以說,我們要求 WMI 只要有 WMI 事件(創建、刪除、修改)發生,就立刻通知我們。這里只有一個問題:我們只想當 TargetInstance(創建、刪除或修改的項目)是 Win32_Process 類的實例時才得到通知。
注意:當然,從技術角度來說,還有第二個問題:我們只是每 5 秒鐘檢查一次新事件。如果屏幕保護程序啟動,3 秒鐘之后結束,我們很可能就不會得到通知了。
換句話說,假設創建了一個新文件。新文件是 Win32_Process 類的實例嗎?不是;它是 CIM_DataFile 類的實例。因此,我們不想得到通知。假設修改了一個服務。我們想要得到通知嗎?不想要,因為服務是 Win32_Service 類的實例。好了,假設新進程(例如屏幕保護程序)啟動。我們想要得到通知嗎?當然想要。別忘了,新進程可是 Win32_Process 類的實例。任何時候如果創建、刪除或修改進程,我們都想得到通知。 
不過,這些您已經意識到了,對吧?
為了獲得這些通知,我們建立一個當 True 等于 True 時運行的 Do 循環:
Do While True
句子的語法確實有點怪異,但這個語法卻能夠使腳本不停運行,并且不停監控進程的創建、刪除和修改,直到終止腳本或重新啟動計算機。如果沒有這樣的循環,腳本會通知我們屏幕保護程序何時啟動,但是,隨后腳本就會結束。結果,我們永遠也不會得到屏幕保護程序何時結束的通知。
在循環內,我們首先要做的就是執行下面這行代碼:
Set objEventObject = objEventSource.NextEvent()
我們所做的是告訴腳本等待,直到下一個我們所關心的事件發生。換句話說,腳本將停留在此行代碼上,直到有進程被創建、刪除或修改。假設進程始終不變,假設我們始終不創建、刪除或修改進程。在這種情況下,腳本就會永遠停在這兒,耐心等待。以防萬一。
現在,我們知道您正在想什么。您正在想:“嗨,稍等一下。我們只關心屏幕保護程序。Microsoft Word 也在進程中運行。如果我們啟動 Microsoft Word,從而創建 Winword.exe 進程的新實例,那不也會觸發通知嗎?” 
您說對了:會觸發通知。接下來這行代碼就用來解決這個問題。啟動 Word(或者任何可執行文件,就這一點而言)確實都會發出通知。但我們可以使用下面這行代碼解決這個問題:
If Right(objEventObject.TargetInstance.Name, 4) = ".scr" Then
在這里,我們使用 Right 函數檢查觸發通知的進程的名稱。如果名稱中最右側的四個字符等于 .scr,我們便假定正在處理的是屏幕保護程序,因為屏幕保護程序的名稱類似 Marquee.scr。如果名稱中的最后四個字符不是 .scr,我們便只是循環一次,然后等待下一個事件發生。
那么,如果最后四個字符是 .scr 會怎樣?在這種情況下,我們只關心兩種可能:屏幕保護程序啟動或屏幕保護程序結束。(我們并不關心是否有人修改屏幕保護程序的屬性。)為處理這兩種可能,我們設置一個 Select Case 塊,用于檢查事件實例的 Class:
Select Case objEventObject.Path_.Class
如果 Class 等于 __InstanceCreationEvent,則意味著已創建新進程(即新屏幕保護程序)。在第一個 Case 語句中,我們檢查 Class 是否等于 __InstanceCreationEvent。如果等于,我們便回顯如下事實:特定屏幕保護程序(使用進程名稱表示)在特定時間(使用 VBScript 函數 Now)啟動:
Case "__InstanceCreationEvent"
    Wscript.Echo "Screensaver " & objEventObject.TargetInstance.Name & " started: " & Now
意思清楚了,對吧?現在,假設屏幕保護程序已結束,這就會導致刪除屏幕保護程序進程。為處理這種可能,我們檢查 __InstanceDeletionEvent 類是否有新實例。如果發生屬于該類的事件(表示已刪除屏幕保護程序進程),我們便回顯如下事實 - 指定的屏幕保護程序在指定時間停止:
Case "__InstanceDeletionEvent"
    Wscript.Echo "Screensaver " & objEventObject.TargetInstance.Name & " ended: " & Now
至此您已實現了您的目的。運行此腳本后,會返回類似下面的信息:
Screensaver Script Center.scr started: 2/9/2006 9:11:07 AM
Screensaver Script Center.scr ended: 2/9/2006 9:11:17 AM
注意:Script Center.scr 到底是什么?下載它,然后自己看。
我們還要補充兩件事。第一,最好在 Cscript 下的命令窗口中運行此腳本,也就是說,要開始監控,請打開命令窗口,然后鍵入類似下面的命令(當然,具體內容視腳本名稱而定):
cscript screensaver_monitor.vbs
第二,正如我們前面所指出的,此腳本設計為永遠運行。另一方面,什么事都不會永遠持續下去,是吧?如果要停止監控,我們只需按 Ctrl+C,關閉命令窗口,或者終止 CScript.exe 進程。記住,腳本專家決不會讓您陷于沒有出口的無限循環中。(您知道嗎:這對我們這的工作真是形容得非常恰當。)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区动漫| 久久久久999| 中文字幕精品www乱入免费视频| 亚洲二区在线播放视频| 国产69精品久久久久99| 亚洲爱爱爱爱爱| 中文字幕日韩欧美精品在线观看| 第一福利永久视频精品| 国产日韩欧美一二三区| 色偷偷av一区二区三区| 狠狠综合久久av一区二区小说| 亚洲www永久成人夜色| 夜夜躁日日躁狠狠久久88av| 日韩欧美亚洲国产一区| 亚洲精品久久久久久久久久久| 91理论片午午论夜理片久久| 一本大道香蕉久在线播放29| 丝袜美腿亚洲一区二区| 中文字幕少妇一区二区三区| 国产97人人超碰caoprom| 一本一道久久a久久精品逆3p| 国产成人精品亚洲精品| 久久天天躁日日躁| 日韩一区av在线| 久久九九有精品国产23| 91sao在线观看国产| 97超级碰碰碰| 久久网福利资源网站| 精品视频久久久久久| 欧美高清自拍一区| 成人疯狂猛交xxx| 亚洲欧美另类在线观看| 亚洲美女喷白浆| 久久69精品久久久久久国产越南| 亚洲电影免费观看高清| 亚洲tv在线观看| 亚洲欧美在线免费| 国产精品视频自拍| 日韩精品免费在线播放| 中文字幕日韩精品在线观看| 91最新在线免费观看| 欧美性xxxx在线播放| 亚洲福利精品在线| 国产精品h片在线播放| 美女视频黄免费的亚洲男人天堂| 国产精品久久久久久久久| 日本中文字幕不卡免费| 国产在线日韩在线| 亚洲国产欧美在线成人app| 亚洲电影免费在线观看| 91免费精品国偷自产在线| 精品久久久久久| 国产精品视频区1| 亚洲电影在线观看| 精品中文字幕乱| 国产精品成人免费视频| 中文字幕亚洲专区| 久久久久久91香蕉国产| 久久久久久国产精品美女| 国产在线视频2019最新视频| 精品中文字幕视频| 4k岛国日韩精品**专区| 美日韩精品免费观看视频| 欧美日韩免费区域视频在线观看| 日韩精品高清在线观看| 69国产精品成人在线播放| 91av在线网站| 欧美中文在线免费| 疯狂做受xxxx欧美肥白少妇| 日韩视频―中文字幕| 国产亚洲视频在线观看| 欧美日韩国产成人在线| 国产成人综合一区二区三区| 国产69精品久久久久久| 日韩电影中文字幕一区| 免费91麻豆精品国产自产在线观看| 日韩电影中文字幕| 精品国产鲁一鲁一区二区张丽| 久久久精品在线| 91网站免费观看| 国产欧美日韩91| 黄色精品一区二区| 亚洲激情 国产| 亚洲欧美精品在线| 亚洲色无码播放| 欧美一区二区三区图| 亚洲精品久久久久久久久| 国产一区二区三区高清在线观看| 久久成人国产精品| 日韩精品亚洲精品| 欧美怡红院视频一区二区三区| 中文字幕日韩专区| 国产精品自拍视频| 亚洲自拍av在线| 97精品国产97久久久久久春色| 国产极品jizzhd欧美| 日韩精品视频免费在线观看| 亚洲性线免费观看视频成熟| 粉嫩av一区二区三区免费野| 久久99久国产精品黄毛片入口| 91免费版网站入口| 久久在线视频在线| 久久视频在线直播| 91在线无精精品一区二区| 911国产网站尤物在线观看| 最新国产成人av网站网址麻豆| 黑人狂躁日本妞一区二区三区| 国产剧情日韩欧美| 日韩欧美一区二区在线| 色综合天天综合网国产成人网| 色婷婷**av毛片一区| 97超碰国产精品女人人人爽| 日韩成人在线播放| 国产精品视频久| 久久好看免费视频| 国产91精品久| 日韩黄色在线免费观看| 日韩中文字幕国产| 国产精品视频区| 国产精品影片在线观看| 日韩有码视频在线| 国产精品日韩在线一区| 欧美精品videossex88| 久久久91精品| 国产精品xxxxx| 亚洲精品国产拍免费91在线| 欧美午夜影院在线视频| 欧美疯狂做受xxxx高潮| 日韩有码视频在线| 欧美劲爆第一页| 日韩精品欧美激情| **欧美日韩vr在线| 国产精品羞羞答答| 中文欧美日本在线资源| 亚洲三级免费看| 日韩av不卡电影| 狠狠色狠狠色综合日日小说| 亚洲国产精品推荐| 日韩成人免费视频| 欧美极品少妇xxxxⅹ免费视频| 日本亚洲欧美三级| 国产欧美一区二区三区久久| 国产精品亚洲一区二区三区| 欧美日韩亚洲视频一区| 九九综合九九综合| 中文字幕av一区中文字幕天堂| 久国内精品在线| 国产福利视频一区| 久久亚洲综合国产精品99麻豆精品福利| 色综合久久88色综合天天看泰| 日产精品久久久一区二区福利| 久久精品国产2020观看福利| 亚洲国产精品久久91精品| 91在线观看欧美日韩| 亚洲精品福利在线观看| 欧美激情videos| 91久久精品国产91久久| 久久精品精品电影网| 亚洲视频视频在线| 亚洲最大成人免费视频| 韩曰欧美视频免费观看| 国产精品视频在线播放| 精品亚洲一区二区三区在线播放| 欧美性做爰毛片|