右邊的窗口中是否有壹個名為Enabled的DWORD鍵?如果有,將其刪除或將值設置為1即可正常運行。早年使用過DOS系統的用戶都知道,MS-DOS操作系統允許普通用戶編寫批處理文件實現簡單編程。它有效地簡化了我們的工作,給我們帶來了很多便利。當時甚至還有壹些專門寫批處理文件的程序員。
其實壹個操作系統除了提供壹個易於操作的用戶界面,還應該有壹套內置的腳本語言才算完整。從某種角度來說,批處理文件可以說是MS-DOS下的壹種腳本語言。在Windows時代,雖然Windows系統仍然保留了批處理,但是Windows中批處理的功能過於簡單,無法滿足用戶的需求——比如修改註冊表,可以進行批處理嗎?事實上,Windows 98之後的Windows系統,除了保留原有的批處理系統之外,開始增加對腳本語言的支持,這就是“Windows Scripting Host”,中文翻譯為“Windows Scripting Host”,簡稱WSH。
WSH本身不是腳本語言,而是腳本語言的操作環境。WSH支持的腳本語言有JScript(微軟JavaScript,和真正的JavaScript不太壹樣)和VBScript——這個東西想必大家都很熟悉,也常用在網頁上。
CScript.exe腳本引擎有兩種方式,壹種是命令模式下的WScript.exe,另壹種是Windows模式下的。我們編寫的腳本程序(擴展名為.的純文本文件)。js“和”。vbs”)必須通過它們中的任何壹個來加載和運行。
WSH雖然支持JScript和VBScript語言,但還是需要配合WSH自己提供的壹些對象,以及對象的屬性和方法,才能發揮最大的作用。這裏就不多說JScript和VBScript的編程了。現在讓我們把註意力集中在WSH這個對象上。其實本文涉及的註冊表編程幾乎不需要任何VBScript方面的知識,我們只需要簡單套用現成的語句就可以了。
WSH中的對象主要有:WScirpt、WshArguments、WshShell、WshUrlShortcut、WshNetwork、WshSpecialFolders、WshCollection、WshEnvironment、WshShort等。
每個對象都有自己的屬性和方法。這裏,我們只簡單介紹訪問註冊表所涉及的對象的方法和屬性。
第壹個是WshShell對象。該對象可用於設置系統環境變量和修改註冊表數據。要修改註冊表數據,需要使用WshShell對象的三個方法:RegDelete(刪除註冊表數據)、RegWrite(寫入或創建新的註冊表數據)和RegRead(讀取註冊表數據)。
通常我們只需要使用前兩種方法,它們的具體使用方法如下:
I RegWrite(寫入或創建新的註冊表數據)
*創建壹個新的子主鍵
語法是:WshShell。RegWrite“子主鍵名”
例如,如果我們想創建壹個新的主鍵“HKEY _當前_用戶\我的用戶”,我們可以使用下面的語句:
WshShell。RegWrite“HKCU \邁雷格”
描述:子主鍵名必須以反斜杠(\)結尾。如果您不小心忘記輸入這個(\),該方法將返回鍵值,這意味著您希望在HKEY當前用戶下創建壹個名為MyReg的鍵值。這壹點壹定要高度重視!
請註意,引號中的子主鍵必須以下列根鍵名之壹開頭:
HKEY _當前_用戶(縮寫為HKCU)、HKEY _本地_機器(HKLM)、HKEY _類_根(HKCR)、HKEY _用戶和HKEY _當前_配置。
*在子主鍵下創建壹個新鍵值(或重寫現有鍵值的數據)。
語法是:WshShell。RegWrite“子主鍵名\鍵名”、“鍵值數據”和“鍵值類型”
例如,如果我們想在子主鍵“HKEY _當前_用戶\我的註冊”下創建壹個新的字符串KeyValue,並將keyvalue的數據設置為“str”,我們可以使用下面的語句:
WshShell。RegWrite " HKCU \邁雷格\鍵值","字符串"
(註意:鍵值是字符串值,所以可以省略“鍵值類型”的聲明。)
如果構建了二進制值或DWORD值,並且數據為“1”,則還必須聲明鍵值的類型,如下所示:
WshShell。RegWrite " HKCU \邁雷格\鍵值",1," REG_BINARY "
WshShell。RegWrite " HKCU \邁雷格\鍵值",1," REG_DWORD "
請註意,二進制值和DWORD值的數據不能被引用,而字符串值的數據必須被引用。
第二,RegDelete(刪除註冊表數據)
*刪除壹個子主鍵。
語法是:WshShell。RegDelete“子主鍵名”
例如,如果我們想刪除子主鍵“HKEY _當前_用戶\我的註冊”,我們可以使用下面的語句:
WshShell。RegDelete“HKCU \邁雷格”
*刪除子主鍵的鍵值。
語法是:WshShell。RegDelete“子主鍵名\鍵名”。
例如,如果我們想刪除子主鍵“HKEY _當前_用戶\我的註冊”的鍵值,我們可以使用下面的語句:
Wshshell。regdelete "hkcu \ myreg \ keyvalue "類似於RegWrite,有壹個\ "符號表示刪除子主鍵,沒有\ "符號表示刪除子主鍵下的鍵值。
除了WshShell對象,我們還必須了解WScirpt對象。WScirpt對象代表腳本引擎,只要啟動引擎就會自動生成。WScript對象提供了創建和讀取對象的方法。要使用WSH的其他對象(如WshShell對象),必須先用WScript對象的相關方法(CreateObject,GetObject)創建和讀取它們。
創建對象的語法如下:
WScript。CreateObject(strProgID)
其中strProgID是我們要創建的對象的標識名。
例如,如果我們要使用WshShell對象及其屬性和方法,我們必須先用CreateObject的方法創建壹個WshShell對象,語句如下:
設置WSHShell = WScript。CreateObject("WScript。外殼”)
舉個例子。眾所周知,如果妳在“開始”菜單中使用“運行”,Windows會在列表框中記錄妳的“罪行”。事實上,這些數據都記錄在註冊表HKEY _當前_用戶\軟件\微軟\視窗\
在CurrentVersion\Explorer\RunMRU子項下,我們只需要刪除這個子項,然後重新建立,不是就可以了嗎?
現在我們可以寫壹個腳本了。以VBS為例,我們可以用記事本新建壹個文件,然後輸入(“//”後面的文字是註釋,不需要輸入):
//定義對象。要編輯註冊表,我們需要使用WSHShell對象及其方法。
昏暗的WSHShell
//對象的方法CreateObject來創建WSHShell對象。
設置WSHShell = WScript。CreateObject("WScript。外殼”)
//然後RegDelete HKEY _當前_用戶\軟件\微軟\
windows \ current version \ explorer \ run mru子項
WSHShell。RegDelete“HKCU \軟件\微軟\
windows \ current version \ Explorer \ run mru \ "
//最後我們恢復主鍵,恢復主鍵下的字符串值“MRUList”,將其數據設置為空字符串。
WSHShell。RegWrite“HKCU \軟件\微軟\
windows \ current version \ Explorer \ run mru \ mru list ",""
節目到此結束。我們可以將文件保存為CleanMRU.vbs,現在我們可以使用腳本引擎來執行這個程序。假設我們只是將這個文件保存在D:\TEMP中,我們可以在啟動menu-Wcript.exe D:\ TEMP \ clean mru . VBS中使用Run,重新啟動怎麽樣?“跑”已經空了!
如果我們辛辛苦苦編譯程序,最後還要手動運行,不如每次都直接用註冊表編輯器!其實我們可以讓它每次開機都自動加載。所以說,大家壹定知道——我們可以使用註冊表編輯器,在“HKEY _本地_機器\軟件\微軟\視窗\
在“CurrentVersion\Run”的子項下建立壹個字符串值“CleanMRU”,並將其數據設置為“wccript . exe d:\ temp \ clean mru . VBS”。嘿,嘿,這就是妳做的。以後每次開機,Windows都會自動執行腳本,清除“運行”中的歷史。
限於篇幅,本文只介紹了與註冊表修改相關的WSH對象的初步使用。我們只要在腳本中加入壹些簡單的句子,就可以輕松實現交互操作——當然,這需要大家掌握更多關於WSH和VBScript的知識。如果妳有興趣,妳可以從微軟網站下載關於WSH和VBScript的幫助文檔。網址分別為/China/scripting/Windows Host/wsh doc . exe和/China/scripting/VBScript/download/vbsdoc . exe(均為中文)。此外,在Windows示例目錄下,有壹個WSH文件夾,其中包含許多。vbs和。js套路。可以打開看看(右擊圖標選擇“編輯”)。相信會有很多收獲。
最後,如果Windows Scripting Host已經安裝在您的機器上而VBS程序仍然不能運行,很可能您或其他應用程序已經修改了關聯的。VBS。據我所知,幾乎每臺機器上安裝的“超級街霸”都會修改聯想的。VBS檔案。沒關系。妳只需要從控制面板-添加/刪除程序-Windows Installer-附件-詳細信息中卸載它,然後重新安裝Windows Scripting Host。首先,我的vbs文件協會已經被Hero查封了。我雙擊Deploy.vbs它就會打開Hero,挺郁悶的。但我用了打開模式,試了瀏覽器和cmd,都無濟於事。
今天想了這個問題之後,有了在微軟的新聞組上問壹下的想法。然後我去全文搜索CSDN。果然我的關鍵字只有vbs,執行的時候發現了很多我想要的東西。我了解到wscript.exe被用來執行這份文件。
我在cmd中鍵入了wscript.exe部署. vbs,但返回的錯誤是沒有用於文件擴展名的腳本引擎。vbs。這時候我想到了谷歌。果然發現了很多有用的信息,第壹條就找到了解決辦法。原因是我的vbs關聯丟失了,必須顯示賦值。
在cmd中鍵入wscript.exe//e: VBScript deploy . VBS。果然!!!
總結:使用wscript.exe來執行腳本文件,如vbs。如果文件關聯丟失。可以用//e:vbscript。