簡體   English   中英

在C#中訪問Windows注冊表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM