あなたのOSはx64ですか?その場合、"LocalMachine\Software" には、x64 アプリ用の Normal と x86 アプリ用の Wow6432Node の 2 つの異なるノードがあります。
上記を示すサンプル アプリケーション。
using System;
using Microsoft.Win32;
namespace ConsoleApplication1
{
internal class Program
{
public static void Main()
{
String[] values = Registry.LocalMachine.OpenSubKey(@"SOFTWARE").GetSubKeyNames();
foreach (String value in values)
Console.WriteLine(value);
}
}
}
これは、コンソール アプリケーションが x86 でビルドされている場合の私のマシンでのコードの出力です。
Adobe
AGEIA Technologies
アルコール ソフト
Apple Computer, Inc.
Apple Inc.
Aureal
Avira
Azureus
BazisSoft
C07ft5Y
Canon
Citrix
...
これは、コンソール アプリケーションが x64 でビルドされたときの私のマシンの出力です。
7-Zip
AGEIA Technologies
Apple Computer, Inc.
Apple Inc.
ATI Technologies
Canon
Classes
Clients
...
ご覧のとおり、出力は、アプリケーションが x86 か x64 かによって大きく異なります。
編集:以前に StackOverflow で同様の質問がありました。