最近公司中毒頻傳,每次中毒都要一個一個去檢查註冊機碼,修正內容...
有沒有辦法透過批次檔或是什麼工具來快速達成呢?
就目前順子了解,透過 vbscript 來編輯註冊機碼是個不錯的方法。
不過,在編寫vbscript之前,您最好有一點程式概念,這樣會比較容易上手。
編寫vbscript很簡單,只要打開記事本就可以編輯程式內容。
編寫好後,再將檔案儲存為副檔名 vbs 的檔案就可以。
執行時,只要滑鼠連點兩下這個*.vbs就可以運行程式中的vbscript程式。
要利用vbscript來編輯註冊機碼,首先我們必需產生一個註冊機碼物件變數WSHShell。
語法如下:
Dim WSHShell
Set WSHShell=Wscript.CreateObject("Wscript.Shell")
物件產生後,我們就可以利用它來編輯註冊機碼。
在註冊機碼中有五個主要的鍵結構。
其中三個主要鍵的稱較長,所以有如下的縮寫對應。
HKEY_CURRENT_USER → HKCU
HKEY_LOCAL_MACHINE → HKLM
HKEY_CLASSES_ROOT → HKCR
HKEY_USERS (沒有縮寫對應)
HKEY_CURRENT_CONFIG (沒有縮寫對應)
編寫程式時,可以直接以其縮寫來代替∼
編輯註冊機碼不外三個主要目的:新增、修改、刪除註冊機碼中的機碼或鍵值。
其中,新增和修改的語法同樣都是RegWrite。
在該機碼或鍵值存在的情況下,RegWrite會被視為修改;
相反的,若無該機碼或鍵值,RegWrite會以新增的方式加入其內容。
新增機碼的語法如下:
WSHShell.RegWrite "HKCU\MyRegKey\", "Top level key"
意思是在HKEY_CURRENT_USER\的跟徑下,加入一個新機碼MyRegKey,資料內容為Top level key。
要注意的是,路徑的結尾一定要有反斜線“ \ ”。
不加反斜線會變成新增/修改鍵值而不是機碼,這是絕對不能忽略的!
新增/修改鍵值的語法如下:
WSHShell.RegWrite "HKCU\MyRegKey\Entry", 2, "REG_DWORD"
意思是在HKEY_CURRENT_USER\MYRegKey\中,加入或修改一個型態為DWORD,值為2的機碼Entry。
所有可用型態代碼如下:
字串值 → REG_SZ
二進位值 → REG_BINARY
DWORD值 → REG_DWORD
多字串值 → REG_MULTI_SZ
可擴充字串值 → REG_DWORD_BIG_ENDIAN
刪除機碼的語法如下:
WSHShell.RegDelete "HKCU\MyRegKey\"
意思是在HKEY_CURRENT_USER\下,刪除名稱MyRegKey的機碼。
要注意的是,路徑的結尾一定要有反斜線“ \ ”才是刪除機碼;
不然會變成刪除鍵值喔!
刪除鍵值的語法如下:
WSHShell.RegDelete "HKCU\MyRegKey\Entry"
意思是在HKEY_CURRENT_USER\MYRegKey\下,刪除名為Entry的鍵值。
最後,script中被建立的物件WSHShell不要忘了在程式結束後釋放它喔∼
Set WSHShell=nothing
在幾個主要的 新增/修改/刪除 機碼/鍵值 的語法都了解後,
剩下的就看使用者如何來應用囉∼
本文完整範例如下:
Dim WSHShell
Set WSHShell=Wscript.CreateObject("Wscript.Shell")
WSHShell.RegWrite "HKCU\MyRegKey\", "Top level key"
WSHShell.RegWrite "HKCU\MyRegKey\Entry", 2, "REG_DWORD"
WSHShell.RegDelete "HKCU\MyRegKey\Entry"
WSHShell.RegDelete "HKCU\MyRegKey\"
WSHShell.Popup "新增、刪除 機碼/鍵值 完成!"
Set WSHShell=nothing
由於執行後新增的機碼及鍵值都被刪除,本例執行過後是看不出任何變化的。
有與趣的人客,可以自行試試喔∼
不過,我認為以WSHShell物件來編輯註冊機碼還有一個很大的問題存在。
那就是在鍵值名稱中如果有“\”存在,斜線字元會被視路徑字元,而無法正確編輯該鍵值。
例如在HKCU\MyRegKey\下,嘗試新增一個名為c:\windows\system32\cmd.exe的鍵值;
你會發現遇到很大的挫折...
這個問題找了整個下午還是沒有解答!?
真是失敗中的失敗...
♥順子老婆的網拍,請多關照∼
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|