2011-04-02 50 views
2

我在Windows啓動部分中顯示所有註冊表項時遇到問題。我想顯示所有的註冊表鍵,告訴程序在文本框中啓動。我已經能夠爲HKEY_LOCAL_MACHINE創建一個目錄列表,但我無法設法將其縮小到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run目錄中列出的鍵。這裏是我的代碼:如何在文本框中顯示註冊表項C#

TreeNode localMachineNode = new TreeNode(Registry.LocalMachine.Name); 
string[] localMachineSubKeys = Registry.LocalMachine.GetSubKeyNames(); 
foreach (string key in localMachineSubKeys) 
{ 
    TreeNode node = new TreeNode(key, 0, 1); 
} 

如果有更好的方法來做到這一點,我很樂意聽到它。請注意,這只是我的代碼的一部分。

var runs = Registry.LocalMachine.OpenSubKey(
    @"Software\Microsoft\Windows\CurrentVersion\Run"); 

var valueNames = runs.GetValueNames(); 

var values = new List<object>(); 
foreach (var valueName in valueNames) 
{ 
    values.Add(runs.GetValue(valueName)); 
} 

回答

2

使用OpenSubKey使用路徑打開的關鍵?

var keys = Microsoft.Win32.Registry.LocalMachine 
    .OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run") 
    .GetSubKeyNames(); 
0

這是你所追求的:

+0

我該如何在列表框中顯示?我試着做listBox1.text =(keys);這不起作用。我正在使用C#2008.謝謝! – llk 2011-04-08 00:12:26

+0

好吧,它不起作用;以什麼方式?編譯器告訴你什麼?什麼*類型*是關鍵?什麼*類型*是listBox1.Text?你真的想設置listBox1.Text屬性或將值添加到列表框中的集合嗎?我會把剩下的留給你:-) [我不想讓自己變得困難,教一個人去釣魚和所有那些] – 2011-04-08 08:23:01

+0

不能將類型'string []'隱式轉換爲'string'這是編譯器錯誤。我有一個空白程序打開一個按鈕和文本框。按鈕的代碼就是你上面粘貼的內容,再加上textBox1.Text =(keys);我在程序中沒有其他代碼,因爲我試圖單獨調試它。另外我的目標是列出運行目錄中的所有註冊表項,以便用戶知道啓動的所有內容。我知道我是初學者/新手,所以不要擔心建設性的批評,如果有需要的話。謝謝! – llk 2011-04-09 21:01:14

相關問題