使用 Visual Basic .NET 訪問注冊表(微軟)之一
發(fā)表時間:2023-08-12 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]使用 Visual Basic .NET 訪問注冊表 摘要:本文介紹如何使用 Visual Basic® .NET 的內(nèi)置函數(shù) DeleteSetting、GetAllSetting...
使用 Visual Basic .NET 訪問注冊表
摘要:本文介紹如何使用 Visual Basic® .NET 的內(nèi)置函數(shù) DeleteSetting、GetAllSettings、GetSetting 和 SaveSetting,以及公共語言運行時的 Registry 和 RegistryKey 類來訪問注冊表。其中詳細說明了所需的權(quán)限、何時使用注冊表編輯器,以及如何通過編程讀取和寫入注冊表。本文包含一些指向英文站點的鏈接。
目錄
簡介
前提條件
使用 Visual Basic .NET 函數(shù)訪問注冊表
使用 .NET 框架訪問注冊表
權(quán)限
使用注冊表編輯器訪問注冊表
總結(jié)
簡介
在 Visual Basic .NET 中編程時,可以選擇通過 Visual Basic .NET 提供的函數(shù)或者 .NET 框架的注冊表類來訪問注冊表。雖然多數(shù)情況下使用 Visual Basic 函數(shù)已經(jīng)足夠,但有時仍需要使用 .NET 框架。
注冊表儲存了有關(guān)操作系統(tǒng)的信息以及計算機上安裝的應(yīng)用程序的信息。使用注冊表可能會影響安全性。因此,必須仔細檢查訪問注冊表的代碼以確保不會給將運行該代碼的計算機帶來安全影響。
注冊表項包括兩部分:值名稱和值。項目存儲在項和子項系統(tǒng)中,如同文件系統(tǒng)中文件存儲在目錄和子目錄中一樣。
前提條件
要掌握本文內(nèi)容,必須具備以下前提條件:
熟悉以前版本的 Visual Basic。
掌握有關(guān)注冊表的設(shè)計和用途的知識。
理解訪問注冊表的安全問題。
使用 Visual Basic .NET 函數(shù)訪問注冊表
Visual Basic .NET 提供了四個函數(shù)以訪問注冊表。要使用這些函數(shù),必須具有 RegistryPermissionAccess 枚舉的 Read 和 Write 權(quán)限。以完全信任身份運行的任何代碼(根據(jù)默認的安全原則,這是指安裝在用戶本地硬盤驅(qū)動器上的任何代碼)都具有訪問注冊表的權(quán)限。有關(guān)詳細信息,請參閱 RegistryPermission Class。
Visual Basic .NET 函數(shù) 說明
DeleteSetting 從注冊表中應(yīng)用程序的項目中刪除一段或一個項設(shè)置。
GetSetting 從注冊表中應(yīng)用程序的項目中返回一個項設(shè)置值。
GetAllSettings 從注冊表中應(yīng)用程序的項目中返回項設(shè)置及其值的列表。
SaveSetting 在注冊表中創(chuàng)建或保存一個應(yīng)用程序項目。
注意:不能通過 GetSetting 函數(shù)返回段的名稱。
如果不能保存項設(shè)置,將產(chǎn)生一個 ArgumentException 對象。有關(guān)此異常的詳細信息,請參閱 ArgumentException。
下面的示例創(chuàng)建了一個注冊表項和兩個子項。接著顯示第一個項的值,并顯示第一個項及其子項的值。然后刪除第二個子項,并顯示第一個項及其子項的值,以確認刪除了第二個子項。
' 創(chuàng)建第一個項。
SaveSetting("TestApp","Startup","FirstKey","First")
' 創(chuàng)建第一個子項。
SaveSetting("TestApp","FirstKey","FirstSubKey","FirstSub")
' 創(chuàng)建第二個子項。
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
使用內(nèi)置注冊表訪問函數(shù)具有以下限制:只能訪問位于 HKEY_CURRENT_USER\Software\VB and VBA Program Settings 下的注冊表項。為此,必須登錄到系統(tǒng),因為 HKEY_CURRENT_USER 注冊表項僅在登錄到系統(tǒng)時才被激活。
從一個非交互進程(如 mtx.exe)訪問的注冊表設(shè)置應(yīng)存儲在 HKEY_LOCAL_MACHINE\Software\ 或 HKEY_USER\DEFAULT\Software 注冊表項下。