Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: bugs от 29 Февраля 2004, 16:57:20

Название: cgi/perl & external program
Отправлено: bugs от 29 Февраля 2004, 16:57:20
Привет
Написал dll-ку, которая запускает приложение через командную строку. В cgi файле на перле подключаю эту dll, вызываю функцию запуска приложения, которая должна возвращать хендл окна : приложение запускается, но скрипт не может получать хендл, скрипт вообще ничего не получает в output.
Из командной строки скрипт работает отлично

Подскажите кто-нибудь что же здесь не так?

Похожая ситуация с запуском cmd.exe, тоже ничего в ответ не получает - а постоянно как бы находится в ожидании завершения приложения.
Может быть кто знает как можно полноценно обратиться к командной строке из скрипта? Знаю что это небезопасно, но мне очень нужно.

Буду очень благодарен за любую помощь!
Название: cgi/perl & external program
Отправлено: mike от 01 Марта 2004, 12:47:45
А почему нельзя использовать тот же system или exec или qx()?
Название: cgi/perl & external program
Отправлено: bugs от 01 Марта 2004, 15:59:21
Не получается, видимо сервер не разрешает использовать командную строку в целях безопасности
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd но в ответ ничего получить не может, страница грузится пока насильственно не завершить cmd например.
Написал на С++ прогу которая так же как и скрипт вызвает мою dll-ку - та же ерунда, запускать-то запускает но в ответ ничего не получает, т.е. приводит к запуску но не к работе.

Наверняка есть способ разрешить скрипту работать с командной строкой, только я не знаю как...
Название: cgi/perl & external program
Отправлено: mike от 01 Марта 2004, 16:18:24
Цитировать
bugs:
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd

Я в общем-то не это имел в виду.

ОК, тогда такой вопрос. А что именно ты хочешь сделать из командной строки?
Название: cgi/perl & external program
Отправлено: bugs от 01 Марта 2004, 17:12:52
Dll через командную строку запускает приложение, в path прописываю путь к приложению и функция из dll его запускает.

Скрипт на перле успешно подключает эту dll, но при вывозве функции возвращается вместо хендла ноль, и так со всеми функциями из этой dll.
Скрипт запущенный непосредственно из командной строки успешно получает хендл окна.
Не знаю в чем проблема...

Так командная строка нужна только для запуска приложения
Название: cgi/perl & external program
Отправлено: mike от 01 Марта 2004, 17:38:58
А зачем такие сложности? Если тебе нужно только запустить приложение, то это вполне можно сделать через exec или system без использования ком. строки.
Название: cgi/perl & external program
Отправлено: bugs от 01 Марта 2004, 18:08:17
Дело в том что запуск приложения это одна из 80 функций которые реализованы в этой dll, писал ее не я но она самодельная
Предполагается удаляенная работа с приложением через набор этих функций в dll. Поэтому запуск нужно осуществить через dll, чтобы получить хендл окна а дальше уже используя хендл  полноценно работать с приложением. У меня это работает только из командной строки а через браузер из-под сервера вместо хендла возвращаются нули, вот я и подумал что просто сервер не дает dll-ке нормально работать с командной строкой

Извини что ввел в заблуждение. Я с самого начала не достаточно полно описал проблему.