Я хочу запустить исполняемый файл из сценария CAPL. Есть ли для этого какая-либо функция?
Я ищу функцию, которая будет запускать исполняемый файл в фоновом режиме. Например. если получено определенное сообщение, то запустить приложение.
Есть ли возможность в CAPL для этого?
Есть ли в CAPL функция для запуска / открытия исполняемого файла в фоновом режиме?
Ответы (2)
Да, для этого есть две функции:
long sysExec(char cmd[], char params[]);
long sysExec(char cmd[], char params[], char directory[]);
long sysExecCmd(char cmd[], char params[]);
long sysExecCmd(char cmd[], char params[], char directory[]);
Эти функции выполняют внешнюю команду. Они не ждут, пока команда завершит свое выполнение. Возвращаемое значение - 1, если команда была успешно запущена; в противном случае - 0. Обратите внимание, что значение, возвращаемое самой командой, не будет возвращено, поскольку вызов не ожидает завершения команды.
sysExec
должен быть предоставлен исполняемый файл; sysExecCmd
вызывает cmd.exe /K
с первым параметром, который открывает командное окно, в котором команда выполняется, как если бы она была введена напрямую.
Обратите внимание, что в случае распределенной среды моделирования, использующей устройство VN8900, модуль реального времени (семейство VT 6000) или сервер CANoe RT, sysExec
выполняет запрошенную команду на удаленной платформе.
Вот пример:
sysExec("C:\\windows\\notepad.exe", "");
Третий вариант, если вам не нужна параллельная обработка, - это функция testwaitforsyscall ().
Это будет ждать x тайм-аут для возврата вашего внешнего исполняемого файла и проанализирует, правильно ли, некорректно, с ошибками или истекло ли время ожидания вашего приложения.