powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск программы с параметрами из INI файла
6 сообщений из 6, страница 1 из 1
Запуск программы с параметрами из INI файла
    #38027837
abort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например есть INI файл, в котором прописаны такие пункты:
Код: c#
1.
2.
3.
4.
[programs]
EXE_1=c:\temp\prog1.exe 12 34
EXE_2=c:\temp\prog2.exe 45 78
EXE_3=c:\temp\prog3.exe 789 33



Как сделать так чтобы win-сервис периодически запускал эти программы с параметрами
Это можно сделать только с помощью Reflection?
...
Рейтинг: 0 / 0
Запуск программы с параметрами из INI файла
    #38027841
abort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон забыл добавить, что через Process() получается только запустить, но не проверить код завершения.
Перефразирую так: как запускать процессы-программы с получением кода завершения каждой программы
0 -ок,
1-ошибкаХХ,
2-ошибкаХХХ
...
Рейтинг: 0 / 0
Запуск программы с параметрами из INI файла
    #38027846
Primus inter pares
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если под "кодом завершения" имеется ввиду то что программы пишут в консоль, то глянь тут .
...
Рейтинг: 0 / 0
Запуск программы с параметрами из INI файла
    #38027894
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abortПардон забыл добавить, что через Process() получается только запустить, но не проверить код завершения.Потому что надо дождаться завершения процесса.
...
Рейтинг: 0 / 0
Запуск программы с параметрами из INI файла
    #38028362
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abortНапример есть INI файл, в котором прописаны такие пункты:
Код: c#
1.
2.
3.
4.
[programs]
EXE_1=c:\temp\prog1.exe 12 34
EXE_2=c:\temp\prog2.exe 45 78
EXE_3=c:\temp\prog3.exe 789 33



.ini уже лет 10 никто не пользует
...
Рейтинг: 0 / 0
Запуск программы с параметрами из INI файла
    #38028478
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abortчерез Process() получается только запустить, но не проверить код завершения.
Код: c#
1.
2.
3.
Process p = Process.Start(...);
p.WaitForExit();
int exitCode = p.ExitCode;



Т.к. заранее неизвестно насколько затянется ожидание, то делать это нужно в отдельном потоке. Кроме того чтобы win-сервис мог корректно завершить свою работу, то следует использовать WaitForExit() c таймаутом. Примерно так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
bool _exitThread = false;

void StartProcessThread()
{
    Process p = Process.Start(...);
    bool hasExited;
    for(;;)
    {
        hasExited = p.WaitForExit(5*1000);

        if (_exitThread) return;
        if (hasExited) break;
    }
    
    int? exitCode = hasExited ? p.ExitCode : null;
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск программы с параметрами из INI файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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