Нужно запусить файл .exe через пхп пхп сайт используется только локально, так что безопасность тут не важна Php 5.4.8 стоит на Windows 7 и Apache Safe mode как понимаю в этой версии пхп уже нет, отклучать не чего Пробовал запускать по разному Код (Text): exec("start c:\x.exe") exec("start c:\\x.exe") exec("c:\x.exe") exec("c:\\x.exe") В результате получаю страницу браузера в бесконечной загрузке приложение не запускается Код (Text): echo exec("whoami"); выводит nt authority\????? ????? это какие то нечитаемые символы Что не так и куда копать ?
А что должно произойти? PHP запускает программу от того же пользователя, от которого работает, а страница выводится, не дожидаясь завершения работы этой программы. Вариант - лучше некуда. Что за программа то? Она выводит какие-нибудь логи? Сколько по времени работает?
YSandro Не происходит запуск программы вообще. прога просто exe файл который запускает свое окно браузера и висит в трее Тестил на обычном txt файле то же самое, я просто хочу увидеть запуск.
скорей всего PHP работает от юзера system. В таком варианте не работают программы с windows интерфейсом. Вернее, они могут работать, но интерфейса видно не будет. В диспетчере задач можно увидеть прогу при включенном отображении всех пользователей. Если она работает долго, то появится в списке. Я для подобных вещей писал демон на Java, который запускал вручную.
php как я понимаю работает из под апачи, который висит даже не в процессах, а в службах То есть получается просто запустить приложение из exec нельзя ? как то странно, об этом должны были писать в справке
Можешь создать задание в командной строке. Например, для запуска текстового редактора Код (Text): schtasks /create /tn "mytask" /tr notepad.exe /sc monthly /mo 3 /ru пользователь /rp пароль_пользователя /it пользователь и пароль - с которыми заходишь в Windows. Потом в любое время из скрипта PHP вызывать это задание: Код (PHP): pclose(popen('schtasks /run /tn mytask', 'r')); //или exec('schtasks /run /tn mytask'); //или system('schtasks /run /tn mytask'); Когда надоест вызывать задание, удали его из командной строки: Код (Text): schtasks /delete /tn mytask
[vs] Ничего не произошло пробовал Код (Text): exec("explorer c:\\x.exe"); exec("explorer c:\x.exe"); YSandro Не смог разобратся, пароля у пользователя Windows нет как и где создавать задание тоже не понял
Чтобы программировать, нужно быть продвинутым пользователем. Уж разберись, что такое командная строка, интерфейс командной строки или консоль, как с этим работать, что такое программа schtasks. Вредно не будет. Задания также можно создавать в программе Управление компьютером: на рабочем столе ПКМ по значку Компьютер -> Управление -> Планировщик заданий. В Библиотеке планировщика заданий есть список текущих задач. А чтобы создать задание, нужно выбрать Планировщик заданий, в меню выбрать Действие -> Создать простую задачу...