C # Запустите EXE с параметрами и сохранить - PullRequest
0 голосов
/ 24 октября 2011

На данный момент я запускаю EXE-файл так:

    System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo();
    processStartInfo.FileName = "Stackoverflow.exe";
    processStartInfo.WorkingDirectory = ConfigurationManager.AppSettings["Path"] + name + @"\bin";
    System.Diagnostics.Process.Start(processStartInfo);

Если я хочу добавить параметры, я бы сделал это здесь правильно?:

System.Diagnostics.Process.Start(processStartInfo, params);

Если нет, то где?

И еще, я хотел бы сохранить параметры для exe, это происходит автоматически или я должен установить это при открытии? Если так, то как мне этого добиться?

EDIT:

Что я имею в виду с помощью сохранения ... Я получил форму с текстовым полем, оттуда вы можете запустить EXE, например, Stackoverflow.exe и в текстовом поле вы можете написать: «-hello», теперь в следующий раз, когда вы откроете форму и выберите EXE в форме, есть "-Hello" все еще написано, это означает, что он был сохранен, вот что я хочу

Ответы [ 4 ]

4 голосов
/ 24 октября 2011

Установите свойство ProcessStartInfo.Arguments.Это просто строка разделенных пробелами аргументов.Вам нужно будет заключать в кавычки любые имена путей, которые включают пробелы и т. Д. Это немного мучительно, но это то, что есть: (

Не совсем понятно, что вы подразумеваете под "сохранением" параметров - ничего не будетпомните аргументы, которые вы в последний раз использовали для запуска процесса, и примените те же самые вещи в следующий раз, нет. Вы должны будете сделать это сами. То, как вы это сделаете, будет зависеть от того, что еще вы делаете - вы можете использовать для каждого пользователянастройка, например, так же, как и любая другая настройка.

1 голос
/ 24 октября 2011

Вы можете просто передать аргументы во втором аргументе методу Process.Start. То есть:

Process.Start("IExplore.exe", "www.northwindtraders.com");

В качестве альтернативы вы можете использовать ProcessStartInfo. То есть:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);

Есть несколько других полезных примеров в справочнике классов msdn

0 голосов
/ 24 октября 2011

Вы также можете использовать свойство Аргументы в своем классе ProcessStartInfo.

Кроме того, аргументы не будут сохранены, и почему они должны?Если вы создадите ярлык на рабочем столе, то эти аргументы будут храниться там, и ваш исполняемый файл будет вызываться с сохраненными аргументами, но это не имеет никакого отношения к вашему приложению.

0 голосов
/ 24 октября 2011

Вы бы задали аргументы в processStartInfo.Arguments.

Я не знаю, что вы имеете в виду, сохраняя их, но это ничего не даст, так как это просто строка.С этой строкой вы можете делать все, что захотите.

...