[英]Accessing windows registry in C#
我正在嘗試通過以下代碼在本地計算機上安裝所有SQL實例:
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
string[] instances = (string[])rk.GetValue("InstalledInstances");
if (instances.Length > 0) //Error
{
foreach (string instance in instances)
{
MessageBox.Show(instance);
}
}
它給出以下異常:
你調用的對象是空的。
我已經手動檢查了“注冊表編輯器”,並且指定的鍵存在,而且我的系統上還有兩個SQL實例。
現在,請告訴我為什么它沒有訪問所需的鍵值?
該行可能是問題string [] instance =(string [])rk.GetValue(“ InstalledInstances”);
因為RegistryKey.GetValue方法(字符串)返回一個對象,並且您將其強制轉換為字符串[]
在將其強制轉換為string []之前,應檢查返回的值是否不為null
我在64位計算機上運行了您的代碼。 工作正常。 確保平台設置為AnyCPU或x64,但未設置為x86
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.