Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: bugs от 29 Февраля 2004, 16:57:20
-
Привет
Написал dll-ку, которая запускает приложение через командную строку. В cgi файле на перле подключаю эту dll, вызываю функцию запуска приложения, которая должна возвращать хендл окна : приложение запускается, но скрипт не может получать хендл, скрипт вообще ничего не получает в output.
Из командной строки скрипт работает отлично
Подскажите кто-нибудь что же здесь не так?
Похожая ситуация с запуском cmd.exe, тоже ничего в ответ не получает - а постоянно как бы находится в ожидании завершения приложения.
Может быть кто знает как можно полноценно обратиться к командной строке из скрипта? Знаю что это небезопасно, но мне очень нужно.
Буду очень благодарен за любую помощь!
-
А почему нельзя использовать тот же system или exec или qx()?
-
Не получается, видимо сервер не разрешает использовать командную строку в целях безопасности
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd но в ответ ничего получить не может, страница грузится пока насильственно не завершить cmd например.
Написал на С++ прогу которая так же как и скрипт вызвает мою dll-ку - та же ерунда, запускать-то запускает но в ответ ничего не получает, т.е. приводит к запуску но не к работе.
Наверняка есть способ разрешить скрипту работать с командной строкой, только я не знаю как...
-
bugs:
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd
Я в общем-то не это имел в виду.
ОК, тогда такой вопрос. А что именно ты хочешь сделать из командной строки?
-
Dll через командную строку запускает приложение, в path прописываю путь к приложению и функция из dll его запускает.
Скрипт на перле успешно подключает эту dll, но при вывозве функции возвращается вместо хендла ноль, и так со всеми функциями из этой dll.
Скрипт запущенный непосредственно из командной строки успешно получает хендл окна.
Не знаю в чем проблема...
Так командная строка нужна только для запуска приложения
-
А зачем такие сложности? Если тебе нужно только запустить приложение, то это вполне можно сделать через exec или system без использования ком. строки.
-
Дело в том что запуск приложения это одна из 80 функций которые реализованы в этой dll, писал ее не я но она самодельная
Предполагается удаляенная работа с приложением через набор этих функций в dll. Поэтому запуск нужно осуществить через dll, чтобы получить хендл окна а дальше уже используя хендл полноценно работать с приложением. У меня это работает только из командной строки а через браузер из-под сервера вместо хендла возвращаются нули, вот я и подумал что просто сервер не дает dll-ке нормально работать с командной строкой
Извини что ввел в заблуждение. Я с самого начала не достаточно полно описал проблему.