C# Запускают приложение с несколькими аргументами

Я пытался запустить приложение из приложения C#, но ему не удается запуститься правильно. От cmd приложение плюс аргументы запускают маленькое окно, показывающее вывод затем приложение в минимизированном к системному лотку.

Запуск приложения из приложения C# с помощью кода ниже результатов в процессе, появляющемся в диспетчере задач, но ничем ином, никаком окне вывода, никаком значке системного лотка. Какова могла быть проблема?

    myProcess.StartInfo.FileName = ...;
    myProcess.StartInfo.Arguments = ...;
    myProcess.Start();

также испытанная передача следующего

    myProcess.StartInfo.RedirectStandardOutput = true; //tried both
    myProcess.StartInfo.UseShellExecute = false; //tried both 
    myProcess.StartInfo.CreateNoWindow = false;

использование

    Process.Start(Filename, args)

также не работал. Действительно ценил бы любую справку о том, как заняться этим.

ОБНОВЛЕНИЕ: Я думаю проблема, возможно, несколько аргументов, которые должны быть переданы процессу

RunMode=Server;CompanyDataBase=dbname;UserName=user;PassWord=passwd;DbUserName=dbu;Server=localhost;LanguageCode=9

с уважением

10
задан artsim 11 August 2010 в 08:20
поделиться

2 ответа

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

static void Main (string[] args)
{
     foreach (string s in args)
         Console.WriteLine(s);
     Console.Read(); // Just to see the output
}

, а затем я поместил ее в C :, что является именем приложения «PrintingArgs.exe», поэтому я написал еще одну, которая выполняет первое:

Process p = new Process();
p.StartInfo.FileName = "C:\\PrintingArgs.exe";
p.StartInfo.Arguments = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18";
p.Start();

это дает мне желаемый результат списка чисел. Приложение, вызывающее PrintingArgs, завершает работу по достижении p.Start (), этого можно избежать, используя p.WaitForExit (); или просто Console.Read (); . Также я использовал как p.UseShellExecute , так и p.CreateNoWindow . Только в том случае, если

p.UseShellExecute = false;
p.CreateNoWindow = true;

заставляет приложение PrintingArgs не отображать окно (даже если я поставил только p.CreateNoWindow = true , оно показывает окно).

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

 Process.Start(fileName, args);

информация, которую вы установили с помощью StartInfo, не использует в экземпляре процесса.

Надеюсь, это поможет, с уважением

9
ответ дан 3 December 2019 в 20:39
поделиться
      System.Diagnostics.Process.Start(FileName,args);

Eg

     System.Diagnostics.Process.Start("iexplore.exe",Application.StartupPath+ "\\Test.xml");
1
ответ дан 3 December 2019 в 20:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: