Sudhindra Katighar Ответов: 2

Выполните определенную команду командной строки из кода.


Я попробовал выполнить инструкцию
RunDll32.exe InetCpl.cpl,ResetIEtoDefaults
в командной строке, и это работает нормально.
Но мое требование-запустить то же самое из консольного приложения на c#.

Что я уже пробовал:

Я попытался реализовать свои требования с помощью консольного приложения на C# в Visual Studio.
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new     System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "RunDll32.exe";
startInfo.Arguments = "InetCpl.cpl,ResetIEtoDefaults";
process.StartInfo = startInfo;
process.Start();

Вышеприведенный фрагмент кода не сработал. Я попробовал по-другому, т. е.
string cmdInst = "RunDll32.exe InetCpl.cpl,ResetIEtoDefaults";
System.Diagnostics.Process.Start("cmd.exe", cmdInst);

Но это закончилось открытием командной строки, перемещенной в текущий рабочий каталог.
С нетерпением жду ответов.

2 Ответов

Рейтинг:
1

Nils Gösche

Попробуйте, например, установить полный путь в свойстве FileName.


Рейтинг:
0

serbanov

Попробовать это :

Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";
            cmd.StartInfo.RedirectStandardInput = true;
            cmd.StartInfo.RedirectStandardOutput = true;
            cmd.StartInfo.CreateNoWindow = true;
            cmd.StartInfo.UseShellExecute = false;
            cmd.Start();

            cmd.StandardInput.WriteLine("RunDll32.exe InetCpl.cpl,ResetIEtoDefaults");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());