2013-07-03 2 views
2

Я создаю небольшой инструмент, который может написать ключ в реестре, а крошечная часть его просто для удобства - это мгновенно перейти к этой клавише одним нажатием кнопки. Я знаю, как открыть regedit.exe уже, но есть ли способ мгновенно перейти к нужному ключу? Я пытаюсь сМожно ли открыть regedit и перейти прямо к определенному ключу с помощью process.start?

System.Diagnostics.Process.Start("regedit.exe" + "c/ HKEY_LOCAL_MACHINE");

, но я думаю, что это просто пытается написать ключ в реестре.

Заранее благодарен!

Edit:

@Arran

-Вообще инструмент для себя главным. Я все еще очень новичок в C# или программировании в целом, и я изучаю его самостоятельно. Эта программа - это тест на то, что я могу сделать, и 1/2 полезность для моей более поздней работы. Моя цель заключается в том, чтобы иметь возможность записывать ключ в реестр и после этого иметь возможность перемещаться по нему и удалять его за считанные секунды без необходимости вручную искать через regedit.

Edit:

@Hans Passant

Спасибо за информацию! Я думаю, если это трудно реализовать, это действительно не стоит моего времени и усилий.

+2

Я думаю об этой проблеме по-другому. Что вы намерены делать? Просто разрешите пользователю перейти прямо к ключу? Если вы экспортируете (резервное копирование) ключ, есть лучшие способы сделать это. – Arran

+1

Это особенность ProcMon SysInternals. Он использует UI Automation для выбора ключа в Regedit. Ничего особенного. Это своего рода функция whiz-bang, которую вы бы добавили, когда у вас тысячи пользователей. Посмотрите на проект Белый, если вы все равно хотите записать время. –

ответ

1

Эта ветка немного устарела, если кто-то еще попадает сюда, используя googling.

  1. Set LastKey на вашем пути вы хотите, чтобы открыть редактор реестра в
  2. Launch смерзаться.

Пример:

var registryLocation = "Your key here"; 
var registryLastKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit";   
    try 
    { 
     Registry.SetValue(registryLastKey, "LastKey", registryLocation); // Set LastKey value that regedit will go directly to 
     Process.Start("regedit.exe"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    }