Microsoft.Win32.RegistryKey registryPath = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Testing");
Microsoft.Win32.RegistryKey entryKey = registryPath.OpenSubKey("Entry Point");
"Entry Point 011"、 "Entry Point 123"という形式でテスト中に多くのキーがあります。C#部分的な値を使用して存在するレジストリキーをカウントする
上記のregistryPath変数を検索し、「エントリポイント」キーワードを含むキーの数を取得できますか?このキーワードなしで他のキーも存在すると仮定します。
現時点では、すべてのキーの数を得るためにすべての可能な組み合わせについてループとループを使用していますが、キーが存在するかどうかをチェックしていますが、 "Entry Point 9000" forループを9000回実行することは非常に非効率的である。それは9000まで(例えばのために)カウントされますが、そこになる場合どのよう
for (int i = 0; i <= highestEntryPointValue; i++)
{
Microsoft.Win32.RegistryKey entryKey = steamApps64.OpenSubKey("Entry Point " + Convert.ToString(i));
if (entryKey != null)
{
count++;
}
}
私はこの方法が気に入っていますが、唯一問題となるのは、項目の数を取得した後で、上記のいずれのキーにも含まれていない文字列値を抽出することです。サブキー名が配列になっているので、既存のキー変数の末尾にサブキー名をループして、その中のエントリを取得することができます...これを実行します:) – cheeseman