2017-02-13 15 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

PCとノートパソコンのシャットダウンに関する質問を削除しました。私はあなたに時間を決定する別の方法を提案しようとしていました。これを試してください: 'DateTime.ParseExact(TIME_START_TIME、" H tt "、CultureInfo.InvariantCulture).TimeOfDay' – Enigmativity

+0

@Enigmativity私は提案を感謝しますが、私の問題の解決策。レジストリから軍事的な時間に変換していたとき、私は時間が「午前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

関連する問題