Рейтинг:
4
RickZeeland
Что-то вроде этого:
using (System.Diagnostics.Process p = new System.Diagnostics.Process())
{
p.StartInfo = new System.Diagnostics.ProcessStartInfo(System.IO.Path.GetDirectoryName(GeneralActivities.ExecutionPath) + "\\MYTESTAPP.exe");
p.StartInfo.CreateNoWindow = true;
p.StartInfo.ErrorDialog = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
System.Threading.Thread.Sleep(10000); // for testing ...
if (!p.HasExited)
{
p.WaitForExit(120000); // wait 2 minutes to finish
if (!p.HasExited)
{
p.Kill();
}
}
string output = p.StandardOutput.ReadToEnd();
}
Mohideenmeera
Привет Рик,
Спасибо за информацию.
Нужно ли мне добавлять / изменять какой-либо код в exe-файле, который был вызван из другого.
Если да, то пожалуйста, объясните то же самое....
RickZeeland
Если вы хотите, чтобы значения возвращались из exe-файла, то да.
Вам нужно вывести данные на консоль, что по умолчанию невозможно в Winforms, но вот способ сделать это: https://www.codeproject.com/Tips/68979/Attaching-a-Console-to-a-WinForms-application
RickZeeland
Может быть, проще просто записать вывод в файл и прочитать его из вашего приложения WPF.
Mohideenmeera
Спасибо за ваше время и ответ проверим, используя то же самое, и будем держать вас в курсе результата...
Mohideenmeera
Привет Рик,
Нашел еще одно решение, которое сработало в моем случае. Пожалуйста, найдите приведенный ниже код
Преобразовал exe-приложение в DLL и в Form1 [EXE] добавил этот код
public string variable1 { get { return OutList.Пункты[0].Метод toString(); } }
В Form2 используется приведенный ниже код для доступа к переменной variable1:
TestNameSpace.TestClass ss= новое пространство имен тестов.класс TestClass();
ПС.Метод showdialog();
Ящик для сообщений.Показать (ss. variable1.Метод toString());
Сработало, как и ожидалось.....
Спасибо за ваше время и объяснение....
RickZeeland
Поздравляю! поэтому не было необходимости, чтобы WinForms exe мог работать автономно.
Мне все еще любопытно, зачем вам понадобился Winforms здесь.