vb修改登錄檔可呼叫WSH實現。 在VB中,登錄檔的讀寫,可以用自身的SaveSetting、GetSetting函式,但它們讀寫登錄檔的位置有限;也可以使用API函式來實現登錄檔任意位置的讀寫,但使用起來又比較麻煩。其實,利用微軟提供的Windows Script Host物件來操作登錄檔簡單且方便得多。 要在程式中使用該物件,先要透過“工程\引用”選單項,把“Windows Script Host Object Modle”一項引用到工程中。如果沒有,說明沒有安裝。可透過下面的方法安裝:我的電腦→控制面板→新增/刪除程式→安裝WINDOWS→附件→Windows scripting host→確定。然後建立登錄檔操作物件變數WSH,程式碼為:Set WSH = CreateObject("WScript.Shell")。這樣,就可以讀寫登錄檔了,其方法、格式和功能描述如下: 1、增加鍵值:WSH.regWrite "登錄檔完整路徑\鍵值名",鍵值,"鍵值型別" 注:regWrite方法的鍵值型別常用的有:REG_BINARY(新建或寫入二進位制值)、REG_DWORD(新建或寫入DWORD值)、REG_SZ(新建或寫入字串值)。 2、獲取鍵值:Ret=WSH.RegRead("登錄檔完整路徑\鍵值名") 注:RegRead方法的返回賦給變數Ret。 3、刪除鍵值:WSH.RegDelete "登錄檔完整路徑\鍵值名" 注:RegDelete方法刪除一個不存在的鍵值時要出錯,防錯方法參見以下程式碼。 4、彈出訊息:WSH.Popup "訊息內容" 注:Popup方法和MsgBox的功能差不多,但比MsgBox的功能弱。下面看看登錄檔操作的例項: 建立登錄檔操作變數 Dim WSH Set WSH = CreateObject("WScript.Shell") 禁用登錄檔編輯器 WSH.regWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ DisableRegistryTools", 1, "REG_DWORD" " 注:如果寫入的值1改為0,可解除對登錄檔編輯器的禁用。檢視登錄檔編輯器是否可用 ret = WSH.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ DisableRegistryTools") If ret = 1 Then WSH.Popup "登錄檔編輯器被禁用" Else WSH.Popup "可以使用登錄檔編輯器" End If 讓程式自動執行 WSH.regWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\" + MyName, MyName, "REG_SZ" " 注:MyName是自動執行程式的檔名(含完整路徑) 可以看出,微軟提供的這個物件對登錄檔的操作功能並不弱,著名的“I Love You”病毒,就是利用該物件操作登錄檔使自己附身在Windows中。除此之外,還可以用該物件來獲取系統的一些殊資料夾和環境引數,如:WSH.SpecialFolders("Desktop")可返回桌面資料夾名稱;又如:For Each Info In WSH.Environment("Process"): List1.AddItem Info: Next三行程式碼可取得系統的環境引數。程式程式碼在Win98+Vb6環境下除錯透過。
vb修改登錄檔可呼叫WSH實現。 在VB中,登錄檔的讀寫,可以用自身的SaveSetting、GetSetting函式,但它們讀寫登錄檔的位置有限;也可以使用API函式來實現登錄檔任意位置的讀寫,但使用起來又比較麻煩。其實,利用微軟提供的Windows Script Host物件來操作登錄檔簡單且方便得多。 要在程式中使用該物件,先要透過“工程\引用”選單項,把“Windows Script Host Object Modle”一項引用到工程中。如果沒有,說明沒有安裝。可透過下面的方法安裝:我的電腦→控制面板→新增/刪除程式→安裝WINDOWS→附件→Windows scripting host→確定。然後建立登錄檔操作物件變數WSH,程式碼為:Set WSH = CreateObject("WScript.Shell")。這樣,就可以讀寫登錄檔了,其方法、格式和功能描述如下: 1、增加鍵值:WSH.regWrite "登錄檔完整路徑\鍵值名",鍵值,"鍵值型別" 注:regWrite方法的鍵值型別常用的有:REG_BINARY(新建或寫入二進位制值)、REG_DWORD(新建或寫入DWORD值)、REG_SZ(新建或寫入字串值)。 2、獲取鍵值:Ret=WSH.RegRead("登錄檔完整路徑\鍵值名") 注:RegRead方法的返回賦給變數Ret。 3、刪除鍵值:WSH.RegDelete "登錄檔完整路徑\鍵值名" 注:RegDelete方法刪除一個不存在的鍵值時要出錯,防錯方法參見以下程式碼。 4、彈出訊息:WSH.Popup "訊息內容" 注:Popup方法和MsgBox的功能差不多,但比MsgBox的功能弱。下面看看登錄檔操作的例項: 建立登錄檔操作變數 Dim WSH Set WSH = CreateObject("WScript.Shell") 禁用登錄檔編輯器 WSH.regWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ DisableRegistryTools", 1, "REG_DWORD" " 注:如果寫入的值1改為0,可解除對登錄檔編輯器的禁用。檢視登錄檔編輯器是否可用 ret = WSH.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ DisableRegistryTools") If ret = 1 Then WSH.Popup "登錄檔編輯器被禁用" Else WSH.Popup "可以使用登錄檔編輯器" End If 讓程式自動執行 WSH.regWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\" + MyName, MyName, "REG_SZ" " 注:MyName是自動執行程式的檔名(含完整路徑) 可以看出,微軟提供的這個物件對登錄檔的操作功能並不弱,著名的“I Love You”病毒,就是利用該物件操作登錄檔使自己附身在Windows中。除此之外,還可以用該物件來獲取系統的一些殊資料夾和環境引數,如:WSH.SpecialFolders("Desktop")可返回桌面資料夾名稱;又如:For Each Info In WSH.Environment("Process"): List1.AddItem Info: Next三行程式碼可取得系統的環境引數。程式程式碼在Win98+Vb6環境下除錯透過。