使用腳本調(diào)用系統(tǒng)的關(guān)機(jī)對(duì)話框?qū)崿F(xiàn)代碼
更新時(shí)間:2012年05月16日 20:54:06 作者:
以前有介紹如何使用命令行調(diào)用系統(tǒng)的關(guān)機(jī)對(duì)話框rundll32.exe shell32.dll #60,但是,上述方法會(huì)存在一問(wèn)題,XP下無(wú)法正常使用該方法進(jìn)行關(guān)機(jī)
以前有介紹如何使用命令行調(diào)用系統(tǒng)的關(guān)機(jī)對(duì)話框:
具體方法:開(kāi)始/運(yùn)行:
rundll32.exe shell32.dll #60
但是,上述方法會(huì)存在一問(wèn)題,XP下無(wú)法正常使用該方法進(jìn)行關(guān)機(jī)(感謝網(wǎng)友沐燁 發(fā)現(xiàn)該問(wèn)題)。問(wèn)題原因可能是:正常情況下,關(guān)機(jī)對(duì)話框是有explorer.exe調(diào)用,直接使用rundll32調(diào)用時(shí)無(wú)法觸發(fā)相關(guān)命令。
既然使用explorer.exe調(diào)用可以,我們可以嘗試使用腳本來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)原理:
激活explorer.exe
按ALT+F4
編寫VBS腳本如下(將下述內(nèi)容另存為shutdown.vbs):
Dim objWMI,wsh
Dim colProcesses,objProcess
pid=0
set objWMI = GetObject( "winmgmts:{impersonationLevel=impersonate}//. /root/cimv2" )
set colProcesses = objWMI.ExecQuery( "SELECT * FROM Win32_Process" & _
" WHERE Name='explorer.exe'" )
for Each objProcess In colProcesses
pid = objProcess.ProcessId
Next
set wsh = WScript.CreateObject("WScript.Shell")
wsh.AppActivate pid
wsh.sendKeys "%{F4}"
上述腳本運(yùn)行環(huán)境為:XP SP2
其他環(huán)境也可能正常工作,不過(guò)對(duì)于有多個(gè)explorer.exe進(jìn)程的系統(tǒng),就可能不正常工作了,如開(kāi)了遠(yuǎn)程終端服務(wù)的多用戶環(huán)境下。
具體方法:開(kāi)始/運(yùn)行:
復(fù)制代碼 代碼如下:
rundll32.exe shell32.dll #60
但是,上述方法會(huì)存在一問(wèn)題,XP下無(wú)法正常使用該方法進(jìn)行關(guān)機(jī)(感謝網(wǎng)友沐燁 發(fā)現(xiàn)該問(wèn)題)。問(wèn)題原因可能是:正常情況下,關(guān)機(jī)對(duì)話框是有explorer.exe調(diào)用,直接使用rundll32調(diào)用時(shí)無(wú)法觸發(fā)相關(guān)命令。
既然使用explorer.exe調(diào)用可以,我們可以嘗試使用腳本來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)原理:
激活explorer.exe
按ALT+F4
編寫VBS腳本如下(將下述內(nèi)容另存為shutdown.vbs):
復(fù)制代碼 代碼如下:
Dim objWMI,wsh
Dim colProcesses,objProcess
pid=0
set objWMI = GetObject( "winmgmts:{impersonationLevel=impersonate}//. /root/cimv2" )
set colProcesses = objWMI.ExecQuery( "SELECT * FROM Win32_Process" & _
" WHERE Name='explorer.exe'" )
for Each objProcess In colProcesses
pid = objProcess.ProcessId
Next
set wsh = WScript.CreateObject("WScript.Shell")
wsh.AppActivate pid
wsh.sendKeys "%{F4}"
上述腳本運(yùn)行環(huán)境為:XP SP2
其他環(huán)境也可能正常工作,不過(guò)對(duì)于有多個(gè)explorer.exe進(jìn)程的系統(tǒng),就可能不正常工作了,如開(kāi)了遠(yuǎn)程終端服務(wù)的多用戶環(huán)境下。
相關(guān)文章
VBScript版的PHP extract()函數(shù)
這篇文章主要介紹了VBScript版的PHP extract()函數(shù),extract函數(shù)主要作用是把數(shù)組轉(zhuǎn)換成變量,非常好用的一個(gè)函數(shù),需要的朋友可以參考下2014-06-06
監(jiān)測(cè)windows主機(jī)網(wǎng)絡(luò)接口利用率的vbs代碼
這篇文章主要介紹了監(jiān)測(cè)windows主機(jī)網(wǎng)絡(luò)接口利用率的vbs代碼,不用任何軟件沒(méi)有安全隱患,學(xué)習(xí)vbs的朋友可以參考一下2019-10-10
VBS教程:VBScript 基礎(chǔ)-VBScript 運(yùn)算符
VBS教程:VBScript 基礎(chǔ)-VBScript 運(yùn)算符...2006-11-11
用VBS實(shí)現(xiàn)音樂(lè)播放的多個(gè)代碼小結(jié)
用VBS實(shí)現(xiàn)音樂(lè)播放的多個(gè)代碼,下面根據(jù)網(wǎng)上的一些文章進(jìn)行了整理說(shuō)明,需要的朋友可以參考下。2011-02-02
VBS教程:函數(shù)-StrReverse 函數(shù)
VBS教程:函數(shù)-StrReverse 函數(shù)...2006-11-11

