Запуск *.exe приложения
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Запуск *.exe приложения Expand / Collapse
Автор
Сообщение
27.03.2007 14:47


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Доброе время суток!

Подскажите, пожалуйста, как из PHP, при выполнении скрипта, запустить *.exe приложение.

Это обычное приложение, которое написано на delphi, надо в определенный момент его запускать.


Заранее благодарен!
Сообщ. #911913
27.03.2007 15:08
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Для запуска внешних программ в PHP есть функции exec(), system(), passthru(). Тебе скорее всего нужна именно exec(). Только непонятно как ты будешь запускать программу написанную на Delphi (виндовый exe) под Unix? В Unix  совсем другой формат исполняемых файлов.
Сообщ. #911930
27.03.2007 21:58


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Спасибо! А про *.exe, сервер на Windows'е стоит, поэтому и приложение будет работать. Еще раз спасибо!
Сообщ. #911952
27.03.2007 23:04


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Что-то не все так просто, как думал.

А какие-нибудь надо передавать параметры в exec?

Я в exec указал полный путь к приложению, но при выполнении скрипта ничего не происходит. Если что, то это обычное визуальное приложение, которое после запуска должно работать само по себе.
Сообщ. #911953
28.03.2007 10:35
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Твое приложение наверняка запускается, но его интерфейса ты никогда не увидишь. Дело в том что процесс веб-сервера выполняется как системный сервис, которые не могут создавать окна и вообще взаимодействовать с пользователем. На это есть несколько причин. 1) Сервис выполняется всегда, даже если ни один пользователь не вошел в систему. А если в системе нет ни одного пользователя, то кому показывать UI? Или хуже - а если пользователей несколько, кому из них показывать UI? Кроме того обычно веб-сервер запущен на отдельной машине на которой никто не работает и нет никакого смысла показывать UI на сервере. 2) Сервис взаимодействующий с пользователем может быть более уязвим для атак.

На самом деле есть опция позволяющая системному сервису запускать оконные приложения. В свойствах сервиса надо поставить галочку "Allow service to interact with desktop". Но прежде чем делать это хорошо подумай правильно ли ты поступаешь потому что запуск GUI приложений сервисом может говорит о том что ты делаешь что-то не то и тебе следует поискать другие способы решения своей задачи.

Сообщ. #911960
29.03.2007 12:27


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
То что будет выводиться - это не страшно.

А как выполнить через exec() вот это:

[root@Mutant iface]# cat 1.sh
#!/bin/bash

echo "qqq" > 111qwe

1.sh в нем команда записана..

Я делаю exec('1.sh'); и никакого результата..

(Это уже под Linux)
Сообщ. #912013
29.03.2007 14:34


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Разобрался с проблемой. Не было прав для выполнения файла на Linux.
Сообщ. #912018
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 12:33