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

首頁 > 編程 > VBScript > 正文

vbs中實現啟動兩個應用程序,一直等到其中一個程序結束,然后關閉另一個?

2020-06-26 18:08:38
字體:
來源:轉載
供稿:網友
問: 
嗨,腳本專家!這是我想要完成的任務:我想要用一個腳本啟動兩個可執行文件。第一個應用程序關閉后,我想讓這個腳本關閉第二個應用程序,然后退出。如何完成上述任務? 

-- MK 

答: 
您好,MK。您知道,這是我們喜歡的那種類型的問題。為什么?因為它聽起來確實很復雜很棘手。如果有人想找我們做什么事,我們就可以說“您知道,我正在嘗試編寫這樣一個腳本:它能夠啟動兩個應用程序,等到第一個關閉后,然后自動關閉第二個。”然后他們肯定會說“噢,很抱歉。很顯然,你們很忙”,然后就不找我們了。 

當然,他們不知道,這只是聽起來很困難。其實,它的難度也就相當于下面這個腳本而已: 

復制代碼代碼如下:

strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2:Win32_Process")  

errResult = objWMIService.Create("calc.exe", null, null, intCalcID)  
errResult = objWMIService.Create("notepad.exe", null, null, intNotepadID)  

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  

Set colProcesses = objWMIService.ExecNotificationQuery _  
    ("Select * From __InstanceDeletionEvent " _   
            & "Within 1 Where TargetInstance ISA 'Win32_Process'")  

Do Until i = 999  
    Set objProcess = colProcesses.NextEvent  
    If objProcess.TargetInstance.ProcessID = intCalcID Then  
        Exit Do  
    End If  
Loop  

Set colProcesses = objWMIService.ExecQuery _  
    ("Select * from Win32_Process Where ProcessID = " & intNotepadID)  

For Each objProcess in colProcesses  
    objProcess.Terminate()  
Next 

真的,請相信我們:您了解了腳本所完成的工作后,這其實就變得相當簡單了。我們首先連接到計算機上的 WMI 服務,具體地說,綁定到 Win32_Process 類。這就是我們現在要做的: 

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2:Win32_Process") 

然后,我們使用 Create 方法創建兩個新進程:Calc.exe 和 Notepad.exe。對于每個新進程,我們使用與下面這行代碼類似的代碼: 

errResult = objWMIService.Create("calc.exe", null, null, intCalcID) 

我們剩下要做的只是調用跟有下列內容的 Create 方法: 

• 可執行文件的名稱(可能需要指定應用程序的完全路徑名稱,視您的計算機的設置而定)。 

• 一對 Null 參數。使用這兩個參數,我們可以為應用程序指定不同的工作文件夾和配置某些其他啟動選項。在本示例代碼中,我們不需要考慮這些事情,因此我們只是將參數值設置為 Null。 

• 起“輸出參數”作用的變量(名稱為 intCalcID)。創建這些進程后,分配給進程的 ProcessID 號也分配給這些輸出參數變量。 


最終結果是我們啟動“計算器”,并且變量 intCalcID 中包含分配給“計算器”實例的進程 ID。然后,我們啟動“記事本”,并且變量 intNotepadID 中包含分配給“記事本”實例的 ProcessID。這就是啟動兩個應用程序并且跟蹤它們的方法。 

下一步我們要做的是,嗯,基本沒什么了:我們要此腳本暫停,直到關閉“計算器”。要完成此任務,我們重新連接到 WMI 服務,然后使用 ExecNotificationQuery 監視任何刪除的進程。我們需要重新連接到 WMI 服務是因為在腳本的開始我們只是連接到 Win32_Process 類;因此,對象引用 (objWMIService) 只是引用此類。我們需要連接到“通用”WMI 服務,所以我們只是重新使用對象引用 objWMIService 并進行新連接: 

Set colProcesses = objWMIService.ExecNotificationQuery _ 
    ("Select * From __InstanceDeletionEvent " _  
            & "Within 1 Where TargetInstance ISA 'Win32_Process'") 

這么做的原因何在?每次刪除一個進程,都要生成一個 __InstanceDeletionEvent 類實例。我們要檢查每個實例,看這些實例的進程 ID 是否為目標 ID,也就是分配給 intCalcID 的 ID。如果刪除的進程具有不同的 ID,則它不是“計算器”實例;在這種情況下,腳本將恢復監視。如果刪除的進程具有與 intCalcID 相同的 ID,則它一定是“計算器”實例(因為進程 ID 必須是唯一的)。在這種情況下,我們要停止監視,然后關閉“記事本”。 

下面是實際執行監視的代碼: 

Do Until i = 999 
    Set objProcess = colProcesses.NextEvent 
    If objProcess.TargetInstance.ProcessID = intCalcID Then 
        Exit Do 
    End If 
Loop 

這里我們做的是設置一個循環,該循環一直運行到變量 i 等于 999?,F在,事實是變量 i 將始終不等于 999;這只是個小技巧,確保循環一直運行到“計算器”關閉。(我們如何知道變量 i 將始終不等于 999?是這樣,我們沒有為 i 賦值;因此,它取默認值 0。因為我們從未對該值進行任何更改,所以 i 始終為 0,因此將始終不等于 999。) 

在循環中,我們使用此行代碼等待下一個刪除的進程: 

Set objProcess = colProcesses.NextEvent 

每次刪除進程我們都檢查 ProcessID 與分配給“計算器”的進程 ID 是否相符。如果相符,我們則使用 Exit Do 命令斷開循環,繼續腳本。如果不具有相同的 ID,則我們只需繼續循環,等待下一個刪除的進程。(正如我們上面所說的,i 將始終不等于 999,但是沒關系:使用 Exit Do 命令就可以脫離循環。) 

注意。我們發現,我們有點草草掠過事件監視的整個思路。如果您對諸如 __InstanceDeletionEvent 和 colProcesses.NextEvent 的內容有點糊涂,請參閱腳本專家網絡廣播防患于未然:WMI 事件簡介(英文)。 


現在,我們只需要終止我們啟動的“記事本”實例。要完成此任務,我們使用此 WMI 查詢檢索具有分配給“記事本”的進程 ID 的所有進程的集合: 

Set colProcesses = objWMIService.ExecQuery _ 
    ("Select * from Win32_Process Where ProcessID = " & intNotepadID) 

獲得此集合后,我們使用此代碼塊在整個進程集(只有一個進程)中循環,然后使用 Terminate 方法關閉應用程序: 

For Each objProcess in colProcesses 
    objProcess.Terminate() 
Next 

順便說一句,此方法既適用于遠程計算機也適用本地計算機;只需將變量 strComputer 的值更改為遠程計算機的名稱。但是,要記住,在 Windows XP 和 Windows Server 2003 中,在遠程計算機上啟動的進程是在不可見的窗口中運行的;它們在屏幕上不可見。這意味著,處理遠程計算機時,對于不需要任何用戶交互的應用程序,此方法很有用;而對于確實需要用戶干預的應用程序,此方法遠不及其他方法有用(實際上完全沒用)。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线日韩日本国产亚洲| 精品视频在线观看日韩| 国内精品国产三级国产在线专| 性金发美女69hd大尺寸| 一区二区三区天堂av| 久久久久久久久久久亚洲| 91在线中文字幕| 欧洲成人性视频| 日韩精品久久久久久久玫瑰园| 欧美一区二区三区免费观看| 欧美激情精品久久久久久黑人| 亚洲老板91色精品久久| 国产精品自拍小视频| 欧美性xxxx极品hd满灌| 欧美激情在线观看视频| 国产成人一区二区三区小说| 久久中国妇女中文字幕| 久久亚洲国产精品成人av秋霞| 久久99国产精品自在自在app| 久久大大胆人体| 中文字幕视频一区二区在线有码| 亚洲欧美综合精品久久成人| 国产精品亚洲视频在线观看| 热99精品只有里视频精品| 欧美在线影院在线视频| 欧美国产日产韩国视频| 国产精品亚洲欧美导航| 国产精品久久99久久| 久久99久久久久久久噜噜| 欧美日韩中文字幕综合视频| 最近的2019中文字幕免费一页| 日本中文字幕久久看| 欧美另类老肥妇| 亚洲最大成人免费视频| 国产精品久久久91| 日韩成人av网| 高清一区二区三区日本久| 国产v综合v亚洲欧美久久| 欧美日韩国产黄| 国产一区二区三区在线观看视频| 欧美一级视频在线观看| 欧美午夜影院在线视频| 青草成人免费视频| 热99久久精品| 国产亚洲成精品久久| 国产精品18久久久久久首页狼| 国产专区欧美专区| 欧美一级成年大片在线观看| 亚洲视频电影图片偷拍一区| 欧洲美女7788成人免费视频| 91性高湖久久久久久久久_久久99| 尤物九九久久国产精品的特点| 国产一区二区三区丝袜| 亚洲女人天堂视频| 这里只有精品在线观看| 性欧美视频videos6一9| 欧美老肥婆性猛交视频| 国产精品av在线| 日韩成人中文电影| 日韩中文在线观看| 日韩欧美一区二区三区| 日韩电视剧在线观看免费网站| 国产精品偷伦免费视频观看的| 综合av色偷偷网| 成人欧美一区二区三区黑人孕妇| 欧美夫妻性视频| 日韩av影片在线观看| 精品久久久久久亚洲国产300| 黄色一区二区在线观看| 国产视频在线一区二区| 国产主播精品在线| 欧美日产国产成人免费图片| 中文字幕亚洲欧美日韩在线不卡| 在线看日韩欧美| 欧美成人一二三| 在线观看亚洲视频| 日韩成人xxxx| 亚洲欧美精品在线| 中文字幕久久亚洲| 精品视频中文字幕| 中文字幕日本欧美| 国产亚洲福利一区| 国产不卡一区二区在线播放| 亚洲欧美日韩精品久久奇米色影视| 国产视频一区在线| www.日韩不卡电影av| 久久久999精品| 亚洲第一天堂av| 日韩美女在线观看一区| 国产精品a久久久久久| 日韩精品免费一线在线观看| 色综合天天狠天天透天天伊人| 精品无码久久久久久国产| 亚洲精品国产免费| 热久久免费国产视频| 欧美重口另类videos人妖| 亚洲v日韩v综合v精品v| 久久69精品久久久久久国产越南| 色综合视频一区中文字幕| 日韩av在线网| 中文字幕日本精品| 日韩在线小视频| 亚洲天堂色网站| 中文字幕精品久久久久| 国产成人精品一区二区在线| 亚洲999一在线观看www| 成人国产在线视频| 国产高清视频一区三区| 中文字幕亚洲无线码在线一区| 奇米4444一区二区三区| 日韩成人中文字幕| 亚洲日本成人女熟在线观看| 国内精品在线一区| 在线成人激情黄色| 国精产品一区一区三区有限在线| 亚洲精品乱码久久久久久金桔影视| 92版电视剧仙鹤神针在线观看| 亚洲xxxx妇黄裸体| 国模极品一区二区三区| 国产成人福利视频| 亚洲精选中文字幕| 97精品伊人久久久大香线蕉| 亚洲午夜未删减在线观看| 久久久久北条麻妃免费看| 国内精品在线一区| 日韩高清免费观看| 日韩在线免费av| 欧美亚洲在线视频| 在线观看日韩欧美| 欧美黑人又粗大| 亚洲福利视频网| 97在线视频精品| 91天堂在线视频| 色综合五月天导航| 国产伊人精品在线| 久久久国产精品亚洲一区| 日韩美女在线观看| 国产欧美久久一区二区| 亚洲自拍欧美另类| 91亚洲精品久久久| 国产精品电影久久久久电影网| 亚洲免费视频观看| 亚洲综合色激情五月| 91精品国产综合久久久久久久久| 亚洲精品电影久久久| 国模视频一区二区三区| 精品久久久久久久久中文字幕| 91av免费观看91av精品在线| 国产精品观看在线亚洲人成网| 亚洲人成网在线播放| 国产精品一区二区女厕厕| 欧美亚洲国产日本| 欧美性极品少妇精品网站| 日韩欧美在线免费| 亚洲欧洲一区二区三区久久| 精品精品国产国产自在线| 国产精品综合网站| 欧美成人亚洲成人| 日韩av影视综合网| 欧美xxxx18国产| 精品久久久久久中文字幕| 国内精品伊人久久| 在线中文字幕日韩| 亚洲欧洲偷拍精品|