Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: bugs от 31 Марта 2004, 17:26:50
-
Привет
Вопрос в следующем :
Есть CGI скрипт на perl\'e, он подключает библиотеку DLL и вызывает из нее одну из функций, которая запускает виндовс-приложение. В качестве результата функция возвращает хендл открытого окна.
Из командной строки скрипт нормально выполняется. А вот из-под веб-сервера вместо хендла возвращается ноль и ошибка : "Не удается найти указанный файл" (приложение-то кстати все же запускается но совсем не так как нужно)
С настройками сервера все в порядке, все скрипты работают, успешно подключают и используют другие dll( которые не запускают приложений)
Может быть у вас есть какие-нибудь предположения что же здесь не так?
P.S. Я все больше склоняюсь к тому что все дело в правах сервера, что он не дает ему запуститься из соображений безопасности : ( . В настройках убрал анонимный доступ, настроил чтобы скрипт запускался под администратором.
Может еще как можно настроить?
Сервер IIS 5.0 хотя какой именно не имеет значения
-
будешь кросспостить - выключу
-
bugs
покажи кусок кода где определяется хендл.
-
DLL написана не мной, поэтому я в ней особо не разбирался
Но исходники все есть, вот та самая функция которая запускает приложение и возвращает хендл.
Правда не знаю на сколько будет полезен вырванный кусок кода
HWND32 MGAPI MG_OpenSession(
LPCSTR lpParamStr,
INT nShow)
{
..
}
-
я имел ввиду перловый код
-
Я пробовал из под веб-сервера запускать exe-шник который подключает эту DLL и вызывает функцию, возвращающую хендл. Результат тот же, из командной строки все ок, из под сервера - нули и ошибки
Так что скорее дело в принципе, а не в языке
use Win32::API;
use Win32::API::Prototype;
ApiLink(\'mglue32.dll\', \'HANDLE MG_OpenSession(LPSTR lpParamStr, int nShow)\');
$handle=MG_OpenSession("NULL",SW_NORMAL);
print "$handle\\n";
P.S. пожалуйста, перемести эту тему в раздел веб-технологии
-
может путь полный ему нужен?
посмотри в модуле что он делает с путем