2017-02-13 26 views
-2

Моя программа содержит довольно много значений в реестре и получение имен этих значений вообще не проблематично; реальной проблемой является получение данных из этих конкретных значений.Получение данных из значений в реестре [C#]

Вот сегмент моего кода. Предположим, что «paths.mainKey» - «HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node». Также предположим, что «paths.subKey» - «HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Razer Chroma SDK» (очевидно, не мой ключ, просто используя его в качестве примера).

private void ReadRegistry() 
{ 
    string[] allSubKeys = Registry.LocalMachine.OpenSubKey(paths.mainKey).GetSubKeyNames(); 
    if (allSubKeys.Contains("Razer Chroma SDK")) 
    { 
     string[] allDayPolicies = Registry.LocalMachine.OpenSubKey(paths.subKey).GetValueNames(); 
     foreach (string value in allDayPolicies) 
     { 
      //Read data from the values? 
     } 
    } 
} 

This is a visual representation of what I'm trying to get from the Registry.

Кто знает, как получить эти данные?

+0

Как получить эти значения проблема? Вы использовали метод GetValue()? –

+0

Вы удалили свой вопрос относительно выключения компьютера и ноутбука. Я собирался предложить вам другой способ определить время - попробуйте это: 'DateTime.ParseExact (TIME_START_TIME,« H tt », CultureInfo.InvariantCulture) .TimeOfDay' – Enigmativity

+0

@ Энигматичность. Я ценю предложение, однако, я понял решение моей проблемы; когда я конвертировал время из реестра в военное время, я не добавил случая, когда время было «12 часов». То, как работал мой код, означало, что вместо этого оно составило 12 часов, а блок перезапуска кода не выполнялся, потому что условия не были выполнены. – MTS11648

ответ

0

Вы можете использовать GetValue():

private void ReadRegistry() 
{ 
    string[] allSubKeys = Registry.LocalMachine.OpenSubKey(paths.mainKey).GetSubKeyNames(); 
    if (allSubKeys.Contains("Razer Chroma SDK")) 
    { 
     var subKey = Registry.LocalMachine.OpenSubKey(paths.subKey); 
     string[] allDayPolicies = subKey.GetValueNames(); 
     foreach (string name in allDayPolicies) 
     { 
      var value = subKey.GetValue(name); 
      // do something with value 
     } 
    } 
} 
+0

Не думал, что все так просто. Благодарю. – MTS11648