Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Запуск команд из cmd в C#


Автор: KastorTroy 7.4.2007, 15:34
Помогите пожалуйта!!!

1) В консоли CMD можно запустить программу с параметром, допустим мне нужно запустить:

devcon enable <название службы>
devcon disable <название службы>

Как тоже самое сделать програмно в С#?

2) Можно ли средствами языка или используя компоненты включить подключение или удаленное или локальное?
Если можно то как?
Заранее спасибо!!!

Автор: mr.DUDA 7.4.2007, 16:24
1. Process.Start(...)

2. нельзя


З.Ы. оба вопроса уже тыщу раз поднимались

Автор: KastorTroy 7.4.2007, 17:49
Process.Start без параметров, а мне нужны с параметром!!!
И когда пишешь 

string path = "C:\лалалала.exe" ругается почему?

Автор: Retro 7.4.2007, 20:33
Цитата(KastorTroy @  7.4.2007,  16:49 Найти цитируемый пост)
Process.Start без параметров, а мне нужны с параметром!!!

Код

public static Process Start (
    string fileName
)

Код

Parameters
fileName
The name of a document or application file to run in the process. 


MSDN
Цитата(KastorTroy @  7.4.2007,  16:49 Найти цитируемый пост)
string path = "C:\лалалала.exe" ругается почему? 

Попробуй так - @"C:\лалалала.exe" или так - "C:\\лалалала.exe"

Автор: SLeN 7.4.2007, 21:17
Цитата

2) Можно ли средствами языка или используя компоненты включить подключение или удаленное или локальное?


думаю можно...
 но рабочесть не проверял нашел уже когда нужда отпала 

Автор: mr.DUDA 8.4.2007, 09:31
SLeN, лови плюс.

Хоть и через шелл сделано, но судя по всему работает  smile 

Автор: Pork6 13.8.2008, 16:04
А если мне нужно по нажатию кнопки в форме - запуск cmd, автоматический ввод tracert <берется из текстового поля на форме>.

То есть пользователь вводит адрес сайта и жмет кнопку НА ФОРМЕ, после чего запускается cmd и ему начинает выводиться результат (в cmd пользователь ничего не вводит). Такое реально?

Автор: PashaPash 13.8.2008, 17:24
Pork6, посмотри в msdn ProcessStartInfo.RedirectStandardOutput.

Автор: Pork6 13.8.2008, 18:10
PashaPash, спасибо, вот что получилось после всех трудов и стараний:

Код


private void button2_Click_1(object sender, EventArgs e)
        {
                string Patch = Directory.GetCurrentDirectory() + @"\trace.bat";
                System.IO.TextWriter BatFile = File.CreateText(Patch);

                BatFile.WriteLine("tracert {0}", textBox1.Text); //url
                BatFile.WriteLine("pause");

                BatFile.Close();

                Process compiler = new Process();
                compiler.StartInfo.FileName = Patch;
                compiler.StartInfo.UseShellExecute = false;
                compiler.StartInfo.RedirectStandardInput = true;
                compiler.StartInfo.RedirectStandardOutput = true;                
                compiler.Start();
                textBox4.Text = compiler.StandardOutput.ReadToEnd();
                compiler.Close();
        }


В результате, он все делает правильно и выводит трассировку в текстБокс4. НО Командная строка не закрывается! То есть пока крестик не нажмешь на ней самой - она так и будет висеть. В этом вся проблема( Более того - пока она висит - Главное окно программы неактивно. Подскажите пожалуйста - как его закрыть?

И, еще вопросик, можно, при переносе в программу, отрубить все лишнее, чтобы появлялась только трассировка БЕЗ (C:\Document... бла-бла-бла) в начале и конце?

Автор: diadiavova 14.8.2008, 21:05
System.Diagnostics.ProcessStartInfo.CreateNoWindow() As Boolean

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)