Автор Тема: cgi/perl & external program  (Прочитано 3442 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bugs

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

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

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

Буду очень благодарен за любую помощь!

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #1 : 01 Марта 2004, 12:47:45 »
А почему нельзя использовать тот же system или exec или qx()?
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #2 : 01 Марта 2004, 15:59:21 »
Не получается, видимо сервер не разрешает использовать командную строку в целях безопасности
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd но в ответ ничего получить не может, страница грузится пока насильственно не завершить cmd например.
Написал на С++ прогу которая так же как и скрипт вызвает мою dll-ку - та же ерунда, запускать-то запускает но в ответ ничего не получает, т.е. приводит к запуску но не к работе.

Наверняка есть способ разрешить скрипту работать с командной строкой, только я не знаю как...

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #3 : 01 Марта 2004, 16:18:24 »
Цитировать
bugs:
Вызов system(\'start C:\\WINNT\\system32\\cmd.exe\') запускает cmd

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

ОК, тогда такой вопрос. А что именно ты хочешь сделать из командной строки?
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #4 : 01 Марта 2004, 17:12:52 »
Dll через командную строку запускает приложение, в path прописываю путь к приложению и функция из dll его запускает.

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

Так командная строка нужна только для запуска приложения

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #5 : 01 Марта 2004, 17:38:58 »
А зачем такие сложности? Если тебе нужно только запустить приложение, то это вполне можно сделать через exec или system без использования ком. строки.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
cgi/perl & external program
« Ответ #6 : 01 Марта 2004, 18:08:17 »
Дело в том что запуск приложения это одна из 80 функций которые реализованы в этой dll, писал ее не я но она самодельная
Предполагается удаляенная работа с приложением через набор этих функций в dll. Поэтому запуск нужно осуществить через dll, чтобы получить хендл окна а дальше уже используя хендл  полноценно работать с приложением. У меня это работает только из командной строки а через браузер из-под сервера вместо хендла возвращаются нули, вот я и подумал что просто сервер не дает dll-ке нормально работать с командной строкой

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28