Выполнить видеоплеер на переднем плане с PHP - PullRequest
2 голосов
/ 20 июля 2011

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

Я пробовал с помощью команды exec и класса COM с помощью WScript.Shell. Я даже пробовал запускать перед командной строкой, но все равно ничего. Если я использую ту же строку в cmd.exe, он работает, игрок всплывает и начинает играть, но с php, он запускается в фоновом режиме или не запускается вообще.

Код, который я использую, следующий:

exec('start "C:\Program Files\Daum\PotPlayer\PotPlayer.exe" "D:\mov.avi"');

и

`$ w = new COM (" WScript.Shell "); $ o = $ w-> Run ('"C: \ Program Files \ Daum \ PotPlayer \ PotPlayer.exe" "D: \ mov.avi"', 1, false);

- Edit -

Это происходит со мной все время - сразу после того, как вы долго искали и потеряли всякую надежду, что оставите свой вопрос. В следующие 10 минут вы откидываетесь назад и просто просматриваете, и вы найдете ответ на вопрос.

В любом случае, я получил это на работу. Выполнить -> services.msc найти службу сервера Apache и выбрать свойства. Войдите на вкладку и установите флажок «разрешить сервису взаимодействовать с рабочим столом». Перезапустите apache и последний скрипт заработает. Windows спросит, хотите ли вы просмотреть сообщение, просто нажмите «Да», и видео начнет воспроизводиться. Прежде чем нажать кнопку «Вернуться на рабочий стол», обязательно закройте окно видеоплеера, в противном случае оно продолжит воспроизводиться, и вам придется остановить его из диспетчера задач. `

Ответы [ 2 ]

0 голосов
/ 14 января 2016

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

0 голосов
/ 20 июля 2011

Вы не должны полагаться на «разрешить сервису взаимодействовать с рабочим столом», так как это может привести к проблемам. (На самом деле, это не должно было быть удалено в Windows 7?)

Причина, по которой это не работает для вас, заключается в изоляции Session-0. По сути, службы работают в совершенно другом пространстве, как пользователь. Процессы могут выполняться, но пользователь не сможет напрямую взаимодействовать. Если вы установите флажок «разрешить взаимодействию службы», это разрушит эту стену, но я бы не рассчитывал на это вечно.

http://msdn.microsoft.com/en-us/windows/hardware/gg463353

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