7

Windows 7 PC からレジストリ キーを削除できるようにするプロジェクトに取り組んでいます。具体的には、ProfileList キーを使用してマシンからプロファイルを削除できるプログラムを作成しようとしています。私の問題は、何を試しても、ランダムに削除を開始する前にやりたいキーを正しく読み取れないように見えることです。私のコードは

     RegistryKey OurKey = Registry.LocalMachine;
            OurKey = OurKey.OpenSubKey(@"SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList", true);

            foreach (string Keyname in OurKey.GetSubKeyNames())
            {
                MessageBox.Show(Keyname);
            } 

このコードは実行されますが、何も返されません (メッセージ ボックスなし)。アイデアはありますか?

編集:

皆さんのおかげで最上位のキーをロードできましたが、フォルダー/キーの名前 (例: S-1-5-21-3794573037-2687555854-1483818651-11661) しか表示されません。そのフォルダーを調べて、ProfilePath が何であるかを確認します。それについてもっと良い方法はありますか?

4

2 に答える 2

11

Lloyd が指摘したように、パスには「Windows NT」を使用する必要があります。疑わしい場合は、常にregedit手動でレジストリを調べてください。

編集:編集をGetValue行うには、見つけたキーで簡単に行うことができます。次のコードは、探していることを実行する必要があります。

RegistryKey OurKey = Registry.LocalMachine;
OurKey = OurKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", true);

foreach (string Keyname in OurKey.GetSubKeyNames())
{
    RegistryKey key = OurKey.OpenSubKey(Keyname);

    MessageBox.Show(key.GetValue("KEY_NAME").ToString()); // Replace KEY_NAME with what you're looking for
} 
于 2012-11-16T13:58:56.590 に答える
1

Windows NT

スペースをお見逃しなく

于 2012-11-16T14:02:12.057 に答える