среда разработки:
Windows server 2012
apache2.4 + php5.6
включить расширение dot_net
Здравствуйте все.
(Прежде всего, я извиняюсь за мой плохой английский.)
Я пишу небольшой скрипт PHP. например, когда пользователь нажимает кнопку, сервер выполняет двоичный файл c ++ и возвращает пользователю PID этой программы.
Потому что нужен PID, я использовал объект COM. Мой код как показано ниже ..
$com = new COM('WScript.Shell');
$com->CurrentDirectory = "d:\\git\\myProject\\release\\bin\\";
$exec = $com->Exec("returnPID.exe"); //
$pid = $exec->ProcessID;
echo $pid;
После выполнения returnPID.exe, он показывает свой статус в окне cmd, пока не завершится.
(Это консольное приложение Win32.)
Выше код работает хорошо, и пользователи не испытывают неудобств.
Но проблема в том, что когда я выполняю returnPID.exe через метод Exec объекта COM, приложение returnPID ничего не показывает о своем состоянии в окне cmd.
Если я выполняю приложение returnPID с помощью метода «Выполнить» COM-объекта, приложение правильно сообщает свое состояние в окне cmd. Но, как вы все знаете, метод Run не возвращает PID.
Я хочу знать причину, по которой приложение returnPID не показывает свой статус и разрешение.
Спасибо, что прочитали мой вопрос. 🙂
Задача ещё не решена.
Других решений пока нет …