国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

運行腳本之前,如何確定計算機上的默認腳本宿主的代碼

2019-10-26 17:58:36
字體:
來源:轉載
供稿:網友
問:
您好,腳本專家!我知道,在運行腳本時,可使用代碼確定腳本是否在 WScript 或 CScript 中運行。但我想不明白的是:運行腳本之前,如何確定計算機上的默認腳本宿主?
-- AT
答:
您好,AT。您知道,人們完全難倒腳本專家并不是常事;不過我們不得不承認這個問題的確有點挑戰性。(嗯,嗯:那么,或許它并不足以能夠難倒腳本專家;老實說,事實上它相當簡單。不過你們無需知道這些。)我們還不知道如何回答這個問題,但我們知道,為了幫助您解決這個問題,我們將會需要大量辛勤的工作和奉獻。
但是,在困難面前,腳本專家放棄過嗎?嗯,事實上,我們放棄過。不過,在處理一些毫不相關的事情時,我們卻意外發現了答案。以下這個腳本(使用有點迂回的方法)將告訴您計算機上的默認腳本宿主:
復制代碼 代碼如下:

Const HKEY_CLASSES_ROOT = &H80000000 
strComputer = "." 
Set objRegistry = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv") 
strKeyPath = "VBSFile/Shell/Open/Command" 
objRegistry.GetExpandedStringValue HKEY_CLASSES_ROOT,strKeyPath,vbNullString,strValue 
strValue = LCase(strValue) 
If InStr(strValue, "wscript.exe") then 
    Wscript.Echo "WScript" 
Else 
    Wscript.Echo "CScript" 
End If 

從中可以看出,有關默認腳本宿主的信息存儲在注冊表中,盡管不是處在特別明顯的位置。您所需要做的只是打開 HKEY_CLASSES_ROOT,找到注冊表項 VBSFile/Shell/Open/Command,然后查看默認值。(默認值是個例外的未命名的注冊表值,該注冊表值在 Regedit 中以“(默認)”的形式出現。)“(默認)”的值將是腳本宿主可執行程序的路徑 (例如,%SystemRoot%/System32/WScript.exe)。換句話說,可執行程序文件將告訴您默認腳本宿主是 CScript 還是 WScript。
那么,實際上我們如何獲得該值呢?嗯,我們首先定義一個名為 HKEY_CLASSES_ROOT 的常量,并將其值設定為 &H80000000;這會告訴腳本我們要使用哪個注冊表配置單元。然后,連接到本地計算機上的 WMI 服務(盡管我們可輕而易舉地對遠程計算機運行該腳本),務必綁定到 root/default 命名空間。(大多數 WMI 腳本使用 root/cimv2 命名空間,但是出于某些原因,系統注冊表提供程序還是位于 root/default 中。可能是住房較便宜或是學校較好的原因吧。)
進行連接后,我們創建名為 strKeyPath 的變量,并為其分配值 VBSFile/Shell/Open/Command。此時,我們準備從注冊表中讀取該值。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永清县| 广东省| 开化县| 永城市| 吉水县| 新宁县| 柳江县| 庆安县| 博兴县| 探索| 汶上县| 图片| 竹北市| 高阳县| 阳曲县| 全南县| 肇州县| 望江县| 黄浦区| 大埔区| 奎屯市| 康马县| 漳浦县| 平定县| 石台县| 渑池县| 揭阳市| 达尔| 洪洞县| 安化县| 鄯善县| 阿荣旗| 昌黎县| 依安县| 胶州市| 日照市| 鹤山市| 虎林市| 南昌市| 祁东县| 长治市|