Запустите Exe из другого exe
Я хочу выполнить один exe из другого exe. но другой exe не может работать, если первый exe работает.
Поэтому я хочу запустить exe и выйти из приложения до того, как будет запущен второй exe.
Любая помощь по этому вопросу.
3 ответа
Рассмотрим третье приложение, которое вы запускаете из своего первого приложения. Третий проверяет, что первый завершен, затем запускает второе приложение и завершает сам. Я должен был сделать это в прошлом; это работает отлично.
Вам понадобится процесс, который будет посередине, если вам не разрешено одновременно выполнять два основных процесса. Это означает, что вам нужно всего три процесса. Два основных процесса, A и C, и посредник посередине B. Вот как это происходит:
- Процесс А выполняется.
- Процесс A запускает процесс B, передавая его дескриптор процесса.
- Процесс А завершается.
- Процесс B ожидает на дескрипторе процесса для процесса A. Это становится сигнальным, когда процесс A завершается.
- Процесс B запускает процесс C.
- Процесс Б завершается.
Я предполагаю, что вы уже знаете, как создавать процессы, передавать аргументы для обработки, дублировать дескрипторы, ждать на дескрипторах и так далее.
Я не уверен точно, как это делается в Windows, но я думаю, что общие правила одинаковы для Linux и Windows:
Вам нужно форкнуть дочерний процесс, в Linux это делается с помощью функции fork(), в Windows, я думаю, вы можете использовать CreateProcess(). В этом дочернем процессе вам нужно вызвать одну из функций exec, которая изменяет код этого дочернего процесса на код любого исполняемого файла, который вы можете указать в качестве параметра для функции exec.
Таким образом, код должен быть похож на этот псевдокод:
c= CreateProcess()
if (c == child)
{
exec("My other executable.exe")
}
Это общая процедура, но вам нужно выяснить синтаксис