powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / запуск консольного приложения из WinForms
9 сообщений из 9, страница 1 из 1
запуск консольного приложения из WinForms
    #37146348
sedan13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая: в приложении WinForm запускаю консольное приложение, которое лежит в локальной сети, следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
                Process MyProcess = null;
                try
                {
                    MyProcess = Process.Start(MyProgramFolder.FullName + "my_program.exe");
                    //ждём когда процесс выполнения консольного приложения завершится
                    MyProcess.WaitForExit();
                }
Запускаемое консольное приложение должно производить работу со своим каталогом (Directory.GetCurrentDirectory()) из которого оно запускается (считывание из INI файла настроек и запись лога выполнения программы в текстовый файл LOG.TXT, например). Если запускать консольное приложение отдельно (не через вызов его в WinForm приложении), то всё отрабатывает на УРА. Но вот из под WinForm приложения консольное приложение "забывает" про свой каталог где оно находится и ищет свои файлы в каталоге WinForm приложения.

Вопрос: в чём причина такого поведения и как это можно исправить?
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #37146720
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sedan13,

Очевидно "текущий каталог" имеет разное значение в этих случаях. Попробуй запускать программу через Process.Start принимающий ProcessStartInfo, в котором свойство WorkingDirectory = MyProgramFolder.FullName.
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #37147047
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это всё нюансы отработки Directory.GetCurrentDirectory(). Если вы не манипулируете на рантайме с доменами приложения - попробуйте вместо Directory.GetCurrentDirectory() использовать AppDomain.CurrentDomain .BaseDirectory.
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #37165054
sedan13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема решена через ~15 мин после опубликования поста. спасибо ответившим. в общем надо задавать свойство Process.StartInfo.WorkingDirectory:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
                Process myProcess = new Process();
                try
                {
                    myProcess.StartInfo.WorkingDirectory = MyFolder.FullName;
                    myProcess.StartInfo.FileName = MyFolder.FullName + "MyProgram.exe";
                    myProcess.Start();
                }
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #37165059
sedan13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,
моё почтение
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
запуск консольного приложения из WinForms
    #38380809
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно немного обновить и расширить данную тему?
У меня следующая ситуация: есть консольное приложение, которое я запускаю из своего сервиса. Благодаря параметрам, оно запускается в режиме слушания и появляется текст Listening...
Вот его то и не получается получить. хотя когда я запускаю это приложение из командной строки, всё ок.
дебаг показывает, что выполнение проходит успешно p.Start(); тоесть видимо приложение запускается?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
            
p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\ПУТЬ\\PCATTCP.exe";
p.StartInfo.Arguments = "-c -r -p "+ ttcpPort.ToString();
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
StreamReader myStreamReader = p.StandardOutput;
string output = myStreamReader.ReadToEnd();



но в output пусто...
что я делаю не так?
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #38380814
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в переменной output есть что-нибудь?
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #38380818
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Syrex, там пусто. не null, а ""
...
Рейтинг: 0 / 0
запуск консольного приложения из WinForms
    #38380864
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть приложение так и не запустилось? как это проверить можно?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / запуск консольного приложения из WinForms
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]