Как я могу получить имена значений реестра в C # и положить его в список - PullRequest
0 голосов
/ 22 июля 2011

я хочу получить все значения в "Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ RunMRU" и поместите его в список

через c #.

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

ИЗМЕНИТЬ СНОВА ДЛЯ формы Windows

Вот полный список, при условии, что у вас есть ListBox с идентификатором "lbKeys":

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.UI;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{

    public partial class Form1 : Form
    {

        public Form1()
        {

            RegistryKey myKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU");

            // Check to see if there were any subkeys
            if (myKey.SubKeyCount > 0)
            {
                foreach (string subKey in myKey.GetSubKeyNames())
                {
                    lbKeys.Items.Add(subKey);
                }
            }
        }
}

Возможно, нетбыли какие-то подразделы для ключа, который вы просматривали - в соответствии с предыдущим кодом, который я вам дал, цикл foreach ничего не делал, потому что не было ничего, чтобы пройтись по нему.

1 голос
/ 22 июля 2011

Используйте OpenSubKey, чтобы открыть Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ RunMRU, а затем вызовите GetSubKeyNames, чтобы получить имена подразделов. Здесь является хорошим примером для вас.

Я думаю, что поместить их в ListBox довольно просто.

RegistryKey keys Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU");

foreach (string subKeyName in keys.GetSubKeyNames())
{
    using(RegistryKey tempKey = keys.OpenSubKey(subKeyName))
            {
                Console.WriteLine("\nThere are {0} values for {1}.", 
                    tempKey.ValueCount.ToString(), tempKey.Name);

                foreach(string valueName in tempKey.GetValueNames())
                {
                    Console.WriteLine("{0,-8}: {1}", valueName, 
                        tempKey.GetValue(valueName).ToString());
                }
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...