0
我想編寫一個程序,檢查註冊表中的Windows服務的起始值,我使用字典(字符串,點)來存儲服務的名稱在註冊表(字符串)和開始值(點)X的默認和真正的起始值爲默認值,Y爲真。使用字典和循環VB.net的最佳做法
Private _defaultRegistryVals As New Dictionary(Of String, Point)
Public Enum StartupMode
Disabled = 0
Manual = 1
Auto = 2
AutoDelayed = 3
End Enum
Private Function Analyze as Boolean
Dim mostOfRegistryPath As String = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"
If Not _HasLoaded then
_defaultRegistryVals.Add("AxInstSV", New Point(StartupMode.Manual, 0))
_defaultRegistryVals.Add("SensrSvc", New Point(StartupMode.Manual, 0))
_defaultRegistryVals.Add("AeLookupSvc", New Point(StartupMode.Manual, 0))
_HasLoaded = True
End If
For Each kvp As KeyValuePair(Of String, Point) In _defaultRegistryVals
Try
kvp.Value.Y = TryCast(My.Computer.Registry.GetValue (mostOfRegistryPath + kvp.Key), "Start", Nothing), double)
Catch ex As Exception
End Try
Next kvp
由於字典是隻讀的,這將是我的計劃,讓開盤價的實際值從註冊表中的每個Windows服務的最佳方式。我應該檢查每個值作爲其添加詞典條目?或者,還有更好的方法?
這不是整個代碼,但它的工作需要一些小竅門。其他大部分代碼只是整個服務列表,而按鈕則用於檢查Windows版本,然後開始分析註冊表。
爲什麼你認爲字典是隻讀的?從MSDN開始,[Item](http://msdn.microsoft.com/zh-cn/library/9tee9ht2.aspx)'獲取或設置與指定鍵關聯的值。 – Neolisk
它基本上告訴我,我無法改變循環中的值。 這是我得到的錯誤 http://i.imgur.com/cb8nGnD.jpg http://i.imgur.com/5O6bnbr.jpg – Karma
@Neolisk我用我的代碼得到的錯誤是在兩個Imgur圖片鏈接 – Karma