看看這樣的代碼有沒(méi)有用(利用了WMI) '指定計(jì)算機(jī)名,圓點(diǎn)代表本地計(jì)算機(jī) strComputer = "." '創(chuàng)建一個(gè)通往WMI服務(wù)的連接,將針對(duì)該連接的引用保存于objWMIService變量,且指定了一個(gè)WMI名稱(chēng)空間,即/root/cimv2名稱(chēng)空間 Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") do '循環(huán)進(jìn)行事件查詢(xún) '對(duì)事件產(chǎn)生進(jìn)行監(jiān)控的WQL語(yǔ)句,WITHIN 5子句表示每隔五秒對(duì)事件進(jìn)行查詢(xún),以秒為單位。ISA 表示所需監(jiān)控的對(duì)象是Win32_Process類(lèi),TargetInstance.Name = 'notepad.exe'表明僅對(duì)notepad.exe進(jìn)行監(jiān)控 , '這樣其實(shí)可以認(rèn)為等某程序出現(xiàn)5秒后重新執(zhí)行vbs代碼,效果和doevents就差不多了。 strWQL = "SELECT * " & _ "FROM __InstanceCreationEvent " & _ "WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_Process' " & _ "AND TargetInstance.Name = 'notepad.exe'" '運(yùn)行查詢(xún)語(yǔ)句,啟動(dòng)監(jiān)控 Set objEventSource = objWMIService.ExecNotificationQuery(strWQL) '使腳本處于暫停狀態(tài)直到程序接收到下一個(gè)事件 Set objEventObject = objEventSource.NextEvent() '如果出現(xiàn)了notepad則退出監(jiān)視 exit do loop '與do語(yǔ)句一起構(gòu)成循環(huán) '相關(guān)處理內(nèi)容,以下演示等待3秒然后模擬輸入口令并登陸,最后給出歡迎詞 Set WshShell=WScript.CreateObject("WScript.Shell") WshShell.AppActivate "無(wú)標(biāo)題 - 記事本" '使記事本程序獲得焦點(diǎn) WshShell.SendKeys "Wait 3 second...{enter}" '開(kāi)始模擬按鍵了 wscript.sleep 3000 WshShell.SendKeys "Login:username{enter}" wscript.sleep 500 wshshell.sendkeys "Password:" wscript.sleep 500 wshshell.sendkeys "*" wscript.sleep 100 wshshell.sendkeys "*" wscript.sleep 100 wshshell.sendkeys "*" wscript.sleep 100 wshshell.sendkeys "*" wscript.sleep 100 wshshell.sendkeys "*{enter}" wscript.sleep 100 wshshell.sendkeys "{bs 48} Hello,world!"
|