Первое примечание: Извините, это долго.Хотел быть тщательным.Я очень не хочу задавать вопрос, когда в Интернете так много всего, но это была неделя поиска, и мне нечего показать.Буду очень признателен за помощь.Я новичок, но я учусь очень быстро и более чем готов попробовать альтернативные языки или что-то еще.
Цель: Я пытаюсь создатьУдаленный Netflix (только для личного использования), который управляет Netflix на сервере (32-разрядный ПК с Windows 7) с помощью сочетаний клавиш (например, пробел, чтобы приостановить) после нажатия кнопки на странице php на моем ipod touch или телефоне Android.В настоящее время пульт ДУ использует USBUIRT для управления телевизором и ИК-устройствами без проблем.Если у вас есть какие-либо альтернативные методы (которые я могу построить, а не купить), чтобы предложить или другие языки, которые я мог бы изучить, которые могут достичь этого, я буду счастлив выучить.
Проблема: PHP-команды exec () и system () не будут запускать скрипт python (или exe-файл, скомпилированный с py2exe), который просто нажимает клавишу Windows (предназначенную для нажатия клавиши на сервере, а не на машине, загружающей страницу php).Я могу использовать UUTX.exe USBUIRT, передавая аргументы с exec (), чтобы без проблем управлять ИК-устройствами.Но мои exe, py, ни pyw файлы работают.Я даже пытался вызвать командный файл, который затем запускает скрипт Python, и этот пакет не запускается.Страница обновляется и ошибки не отображаются.
Попытка: Вот код, который работает
$exec = exec("c:\\USBUIRT\\UUTX.exe -r3 -fC:\\USBUIRT\\Pronto.txt LED_Off", $results);
Вот несколько попыток, которые не работают
$exec = exec("c:\\USBUIRT\\test.py", $results);
$exec = exec("python c:\\USBUIRT\\test.py", $results);
$exec = exec("C:\\python25\\python.exe c:\\USBUIRT\\test.py", $results);
Все те, которые я пробовал, без двойной обратной косой черты и с прямой косой чертой и двойной косой чертой.Я перестал передавать его в переменную $ exec, и это не имеет значения.$ result output Arraystring (9) "
Копирование всего содержимого exec () в командную строку работает правильно. Я попытался переместить файл в папку htdocs, изменил права доступа к папке и убедился, что это не такв safemode в php. Var_dump возвращает: Array "Использование цикла foreach не дает никакой информации из массива.Мои журналы для Apache показывают только
[Sat Sep 10 19:54:09 2011] [error] [client 127.0.0.1] File does not exist: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/announce
Установка: Apache 2.2, python 2.5 и php 5.3.Выполнение этого в Windows 7 и подключение только в локальной сети, без vpn и т.п.Для каждой связанной папки (python, htdocs, файл cmd.exe, папка usbuirt) IUSR, администраторы, пользователи и все, кто имеет полный контроль только для первоначального тестирования (позже я, конечно, увеличу безопасность).Безопасный режим также отключен на php.
Примечания: Этот код, который я видел по другой подобной проблеме, не работает:
exec("ping google.com -n 1");
Нет ошибок в error.log и событиизритель.Поместить его внутрь ob_start ();и получение результатов с помощью ob_get_clean ();не дает мне абсолютно ничего.Нет текста или что-либо вообще.Я попробовал намного больше, но я уже написал здесь роман, так что я просто должен ответить на остальное, как мы идем.Я опубликую полный исходный код php или скрипт python, если это необходимо, но все, что он делает, это импортирует sendkeys и нажимает клавишу Windows, чтобы открыть меню «Пуск» в качестве базового визуального теста.Я не знаю, есть ли у него разрешения, как работает моя установка, мое кодирование ... Я просто больше не знаю.И снова я прошу прощения за это так долго, и если вы ответите, я действительно ценю, что вы нашли время, чтобы прочитать все это, чтобы выручить совершенно незнакомого человека.