PHP exec вызывает сбой программы - PullRequest
3 голосов
/ 03 января 2012

Я использую программу под названием Do It Again, которая является устройством записи мыши. Я пытаюсь запустить ярлык к нему из моего PHP-скрипта. Кажется, все в порядке, когда я запускаю ее как отдельную программу, и администратор не должен запускать ее - все же, когда я запускаю ее со своей страницы php, я получаю всплывающее окно с сообщением о сбое программы. "Возникла ошибка в приложении DoItAgain.exe. Приложение будет закрыто. Приносим извинения за неудобства."

Это не программа, а что-то в моем коде:

$command= 'C:\\xampp\htdocs\poster\dia\\Monty_20.dia';
exec($command);

Я также попытался сделать следующее, но получил всплывающую ошибку Windows: «Не удалось правильно запустить приложение»

$command= ('START C:\\xampp\\htdocs\\poster\\dia\\Monty_20.dia');

Любая помощь будет принята с благодарностью. Я занимаюсь этим уже 3 часа и вытаскиваю, какие у меня остались маленькие волосы.

1 Ответ

1 голос
/ 03 января 2012

Попробуйте скопировать вашу команду в буфер обмена. Нажмите Windows-R , чтобы открыть диалоговое окно запуска, куда вы вставите его и нажмите «Выполнить». Если вы получаете ту же ошибку, проблема связана с PHP или разрешением.

Скорее всего, программа просто не работает. В этом случае кто-то, кто имеет опыт работы с «Сделай снова», может быть более полезным. (Их форум, возможно?)


На основании exec docs , это может помочь перенаправить вывод.

Если программа запускается с этой функцией, чтобы она продолжить работу в фоновом режиме, вывод программы должен быть перенаправлен в файл или другой выходной поток. Неспособность сделать это будет заставить PHP зависать, пока не закончится выполнение программы.

Таким образом, ваша команда должна будет перенаправить вывод на нулевое устройство. Я не использую Windows, но я верю, что это будет что-то вроде C:\path\to\my.exe > NUL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...