3

レジストリ編集を見つけて使用し、エクスプローラーからアクセスできるようにした後、WindowsPhoneをいじっています。私の目的は、接続されている任意のマシンでこのレジストリ編集を実行するためのクイックコンソールアプリケーションを作成することです。

これは、WINDOWS7レジストリです。電話ではありません これが私が従おうとしているステップです

これまでのところ、「ZuneDriver」を含むデバイスレジストリエントリのすべてのインスタンスを検索するコードを記述しました。

RegistryKey start = Registry.LocalMachine;
    using (RegistryKey root = start.OpenSubKey(@"SYSTEM\CurrentControlSet\Enum\USB"))
    {
        string myKey = "ZuneDriver";
        SearchSubKeys(root, myKey);

ここでの問題は、レジストリキー「ZuneDriver」が「デバイスパラメータ」キーのサブキーであり、の値を変更する必要があることです。

現在、検索結果は次の場所に保存されています。

    static System.Collections.Specialized.StringCollection log = new System.Collections.Specialized.StringCollection();

私の検索機能による:

public static void SearchSubKeys(RegistryKey root, String searchKey)
{
    foreach (string keyname in root.GetSubKeyNames())
    {
        try
        {
            using (RegistryKey key = root.OpenSubKey(keyname))
            {
                if (keyname == searchKey)
                {
                    log.Add(key.Name);
                }


                SearchSubKeys(key, searchKey);
            }
        }
        catch (System.Security.SecurityException)
        {
        }
    }
}

保存された結果は次のようになります。

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ USB \ VID_045E&PID_04EC&MI_00 \ 7&b85dba6&0&0000 \ Device Parameters \ ZuneDriver

プログラムに次のレジストリへのアクセス権を持たせたいのですが。

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ USB \ VID_045E&PID_04EC&MI_00 \ 7&b85dba6&0&0000\デバイスパラメータ

'ShowInShell'というDWORDの値を編集します

ただし、最初の検索で\ VID_045E&PID_04EC&MI_00 \ 7&b85dba6&0&0000\を決定している必要があります。

ポインタや提案は大歓迎です:)

乾杯、

ベン

4

1 に答える 1

0

私は次のようにします:

public static void SearchSubKeys(RegistryKey root, String searchKey)
{
    bool containsKey = false;
    foreach (string keyname in root.GetSubKeyNames())
    {
        try
        {
            using (RegistryKey key = root.OpenSubKey(keyname))
            {
                if (keyname == searchKey)
                {
                    containsKey = true;
                }

                SearchSubKeys(key, searchKey);
            }
        }
        catch (System.Security.SecurityException)
        {
        }
    }
    if(containsKey){
        using (RegistryKey key = root.CreateSubKey("Device Parameters"))
        {
            key.SetValue("ShowInShell", /* your value */, RegistryValueKind.DWord);
        }
    }
}
于 2012-02-19T15:40:12.413 に答える