Использование Activex Dll в веб-приложении Flex

Поправьте меня, если я делаю неправильно:

У нас есть веб-приложение Flex-BlazeDS-Spring, работающее на JBoss. Нам нужно прочитать Dll с клиентской машины, поэтому мы использовали ExternalInterface.call, как показано ниже:

ExternalInterface.call("eval", 
                         "try { "Test" + 
                         " = new ActiveXObject('DllName.FunctioninDll'); }" +
                          "catch(e) { document.getElementById('" + dis+ 
                          "').SetLastError(e.message); } ");

С приведенным выше кодом я получаю сообщение об ошибке «Сервер автоматизации не может создать объект» с Mozilla «ActiveXObject не определен».

Пожалуйста, предложите, если есть какая-либо работа вокруг

Спасибо


person Suave Nti    schedule 25.04.2012    source источник
comment
Могу поспорить, что это связано с настройками безопасности браузера. Отключите/уменьшите безопасность браузера и повторите попытку.   -  person Sam DeHaan    schedule 25.04.2012
comment
Привет, Сэм, спасибо за это, но все же это заставляет приложение работать полностью с использованием IE, есть ли какой-либо другой обходной путь для этой проблемы, пожалуйста, предложите.   -  person Suave Nti    schedule 26.04.2012


Ответы (1)


ActiveX доступен только в Internet Explorer. Вы можете попробовать использовать тег объекта HTML, но я не уверен, что это сработает. .

person Gerhard Schlager    schedule 25.04.2012
comment
Привет, Герхард. Да, вы правы. Использование ActiveX заставит пользователей работать в IE. (Но мне все еще нужно использовать эту dll, черт возьми, я ненавижу, но не могу пропустить эту dll). Есть ли способ связаться с локальной Dll на клиентских машинах? Еще раз, спасибо - person Suave Nti; 26.04.2012
comment
Ну, вы могли бы написать плагин для браузера. NPAPI должен работать во всех браузерах, кроме IE. Вы также можете взглянуть на FireBreath. Возможно, вы могли бы даже использовать апплет Java и использовать JNI для вызова некоторых методов DLL. Однако, поскольку вы требуете, чтобы ваши пользователи работали под управлением Windows, где должна быть доступна некоторая конкретная DLL, почему бы вам не сделать IE обязательным требованием? - person Gerhard Schlager; 27.04.2012
comment
+1 Что касается идеи использования JNI, Да, мне удалось обернуть этот JNI с помощью VC++, и у меня есть завернутая dll, Dll отлично работает в командном режиме. AM собирается обернуть это в файл jar. Но как я могу загрузить этот файл jar в компонент flex во время выполнения?? - person Suave Nti; 27.04.2012
comment
Взгляните на Использование апплета, объекта и встраивания Теги - person Gerhard Schlager; 27.04.2012