Изменение значений реестра в консольном приложении - PullRequest
0 голосов
/ 15 марта 2012

Я хочу создать файл, который переключает значение реестра.

Я пытаюсь заставить его получить значение, а затем действовать на основе результатов.Я не слишком увлечен консольными приложениями.Программа просто кажется зависает.Что я делаю не так?

        Process p = new Process();

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.CreateNoWindow = true;
        psi.UseShellExecute = false;
        psi.RedirectStandardOutput = true;
        psi.FileName = "c:\\windows\\syswow64\\cmd.exe";
        psi.Arguments = "reg query HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\AD7Metrics\\Engine\\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /s";
        p.StartInfo = psi;
        p.Start();

        if (p.StandardOutput.ReadToEnd().Contains("3FFA64D1D639"))
            psi.Arguments = "reg add HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\AD7Metrics\\Engine\\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {170EC3FC-4E80-40AB-A85A-55900C7C70DE} /f";
        else
            psi.Arguments = "reg add HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\AD7Metrics\\Engine\\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f";

        p.StartInfo = psi;
        p.Start();

1 Ответ

1 голос
/ 15 марта 2012

Познакомьтесь с переключателями CMD.exe / c и / k.

И, как сказал Комментатор, нет причин делать это так сложно.Если вам действительно нужна внешняя программа (я не вижу причин), вы можете запустить reg.exe напрямую, без cmd.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...