2013-04-01 24 views
5

Trong VB.NET tôi có thể tạo ra một chìa khóa trong Windows Registry như thế này:Kiểm tra nếu một phím tồn tại trong Registry Windows với VB.NET

My.Computer.Registry.CurrentUser.CreateSubKey("TestKey") 

Và tôi có thể kiểm tra xem một giá trị tồn tại trong một chìa khóa như thế này:

If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\MyKey", _ 
     "TestValue", Nothing) Is Nothing Then 
    MsgBox("Value does not exist.") 
Else 
    MsgBox("Value exist.") 
End If 

Nhưng làm thế nào tôi có thể kiểm tra xem một chính với một tên cụ thể tồn tại trong Registry?

Trả lời

6

Một cách là sử dụng phương pháp Registry.OpenSubKey

If Microsoft.Win32.Registry.LocalMachine.OpenSubKey("TestKey") Is Nothing Then 
    ' Key doesn't exist 
Else 
    ' Key existed 
End If 

Tuy nhiên tôi sẽ khuyên bạn không dùng con đường này. Phương thức OpenSubKey trả về Nothing có nghĩa là khóa không tồn tại tại một số điểm trong quá khứ. Vào thời điểm phương thức trả về một hoạt động khác trong một chương trình khác có thể gây ra khóa được tạo ra.

Thay vì kiểm tra sự tồn tại chính và tạo ra nó sau khi thực tế, tôi sẽ đi thẳng đến CreateSubKey.

+0

NÀY CÓ THỂ KHÔNG LUÔN LÀM VIỆC. Một ứng dụng 32 bit trên một hệ điều hành 64-bit sẽ được xem xét nút HKLM \ Software \ Wow6432Node theo mặc định. Để đọc phiên bản 64 bit của khóa, bạn cần chỉ định RegistryView –

Các vấn đề liên quan