與桌面Windows系統類似,WinCE将有關作業系統、應用程式和驅動的設定資訊都儲存在系統系統資料庫中。WinCE的系統資料庫與桌面系統中的組織方式也差不多,包括了如下四個根鍵:
HKEY_CLASS_ROOT,包含了檔案擴充名資訊和COM子系統的配置資訊
HKEY_LOCAL_MACHINE,包含了系統、驅動和應用程式的配置資訊
HKEY_CURRENT_USER,包含了目前使用者的配置資訊
HKEY_USER,包含了所有使用者的資訊
WinCE提供了一系列的用于操作系統資料庫的API,之前做的驅動調試助手小工具就是利用這些API實作的。那VB.NET如何操作系統資料庫呢?實際上更簡單,.NET Compact Framework提供了Registry和RegistryKey,可以利用這兩個類,很友善的實作系統資料庫的讀寫。
下面以修改WinCE裝置的名稱及描述為例,簡單介紹一下WinCE下VB.NET讀寫系統資料庫的方法。參考代碼如下。
1 Imports Microsoft.Win32
2
3 Public Class DevName
4
5 Private Sub ButtonSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSet.Click
6 Dim hklm As RegistryKey = Registry.LocalMachine
7 Dim subkey As RegistryKey = hklm.OpenSubKey("Ident", True)
8 subkey.SetValue("Name", TextBoxDevName.Text)
9 subkey.SetValue("Desc", TextBoxDevDesc.Text)
10 End Sub
11
12 Private Sub ButtonGet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGet.Click
13 Dim hklm As RegistryKey = Registry.LocalMachine
14 Dim subkey As RegistryKey = hklm.OpenSubKey("Ident", False)
15 TextBoxDevName.Text = subkey.GetValue("Name")
16 TextBoxDevDesc.Text = subkey.GetValue("Desc")
17 End Sub
18
19 Private Sub ButtonClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonClear.Click
20 TextBoxDevName.Text = ""
21 TextBoxDevDesc.Text = ""
22 End Sub
23 End Class
如果WinCE系統支援HIVE系統資料庫,還可以通過RegistryKey.Flush()或RegistryKey.Close(),将修改的内容重新整理的磁盤。