Я пытался запустить приложение из приложения 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
с уважением
Я не вижу ошибок в вашем коде. Я написал небольшую программу, которая выводит свои аргументы на консоль
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, не использует в экземпляре процесса.
Надеюсь, это поможет, с уважением
System.Diagnostics.Process.Start(FileName,args);
Eg
System.Diagnostics.Process.Start("iexplore.exe",Application.StartupPath+ "\\Test.xml");