使用 Visual Basic .NET 訪問註冊表
摘要:本文介紹如何使用 Visual Basic® .NET 的內置函數 DeleteSetting、GetAllSettings、GetSetting 和 SaveSetting,以及公共語言運行時的 Registry 和 RegistryKey 類來訪問註冊表。其中詳細說明了所需的權限、何時使用註冊表編輯器,以及如何通過編程讀取和寫入註冊表。本文包含一些指向英文站點的鏈接。
目錄
簡介
前提條件
使用 Visual Basic .NET 函數訪問註冊表
使用 .NET 框架訪問註冊表
權限
使用註冊表編輯器訪問註冊表
總結
簡介
在 Visual Basic .NET 中編程時,可以選擇通過 Visual Basic .NET 提供的函數或者 .NET 框架的註冊表類來訪問註冊表。雖然多數情況下使用 Visual Basic 函數已經足夠,但有時仍需要使用 .NET 框架。
註冊表儲存了有關操作系統的信息以及計算機上安裝的應用程序的信息。使用註冊表可能會影響安全性。因此,必須仔細檢查訪問註冊表的代碼以確保不會給將運行該代碼的計算機帶來安全影響。
註冊表項包括兩部分:值名稱和值。項目存儲在項和子項系統中,如同文件系統中文件存儲在目錄和子目錄中一樣。
前提條件
要掌握本文內容,必須具備以下前提條件:
熟悉以前版本的 Visual Basic。
掌握有關註冊表的設計和用途的知識。
理解訪問註冊表的安全問題。
使用 Visual Basic .NET 函數訪問註冊表
Visual Basic .NET 提供了四個函數以訪問註冊表。要使用這些函數,必須具有 RegistryPermissionAccess 枚舉的 Read 和 Write 權限。以完全信任身份運行的任何代碼(根據默認的安全原則,這是指安裝在用戶本地硬盤驅動器上的任何代碼)都具有訪問註冊表的權限。有關詳細信息,請參閱 RegistryPermission Class。
Visual Basic .NET 函數 說明
DeleteSetting 從註冊表中應用程序的項目中刪除一段或一個項設置。
GetSetting 從註冊表中應用程序的項目中返回一個項設置值。
GetAllSettings 從註冊表中應用程序的項目中返回項設置及其值的列表。
SaveSetting 在註冊表中創建或保存一個應用程序項目。
注意:不能通過 GetSetting 函數返回段的名稱。
如果不能保存項設置,將產生一個 ArgumentException 對象。有關此異常的詳細信息,請參閱 ArgumentException。
下面的示例創建了一個註冊表項和兩個子項。接著顯示第一個項的值,並顯示第一個項及其子項的值。然後刪除第二個子項,並顯示第一個項及其子項的值,以確認刪除了第二個子項。
' 創建第一個項。
SaveSetting("TestApp","Startup","FirstKey","First")
' 創建第一個子項。
SaveSetting("TestApp","FirstKey","FirstSubKey","FirstSub")
' 創建第二個子項。
SaveSetting("TestApp","FirstKey","SecondSubKey","SecondSub")
Try
' 寫出第一個項的值。
Console.WriteLine ((GetSetting("TestApp","Startup","FirstKey"))
' 寫出第一個項及其兩個子項。
Console.WriteLine (GetAllSettings("TestApp","Startup"))
Catch e As ArgumentException
Catch e As Exception
Console.WriteLine (e.GetType.ToString)
Finally
End Try
DeleteSetting("TestApp","FirstKey","SecondSubKey")
Try
Console.WriteLine (GetSetting("TestApp","Startup","FirstKey"))
Console.WriteLine (GetAllSettings("TestApp","Startup"))
Catch e As ArgumentException
Catch e As Exception
Console.WriteLine (e.GetType.ToString)
Finally
End Try
使用內置註冊表訪問函數具有以下限制:只能訪問位於 HKEY_CURRENT_USER\Software\VB and VBA Program Settings 下的註冊表項。為此,必須登錄到系統,因為 HKEY_CURRENT_USER 註冊表項僅在登錄到系統時才被激活。
從一個非交互進程(如 mtx.exe)訪問的註冊表設置應存儲在 HKEY_LOCAL_MACHINE\Software\ 或 HKEY_USER\DEFAULT\Software 註冊表項下。
|
|