2012-04-25 8 views
0

Поправьте меня, если я делаю неправильно:Использование 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 не определен ».

Просьба предложить Если есть работа вокруг

Благодаря

+0

Я бы поспорил, что это связано с настройками безопасности браузера. Выключите/снимите защиту браузера и повторите проверку. –

+0

Привет, Сэм, спасибо за это, но все же Он заставляет приложение работать полностью с помощью IE, есть ли еще один способ обхода этой проблемы, любезно предлагаю. –

ответ

2

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

+0

Привет, Герхард. Да, вы правы. Использование ActiveX заставит пользователей работать в I.E. (Но мне все еще нужно использовать эту dll, черт возьми, я ненавижу, но не могу пропустить эту DLL). Есть ли способ, которым я могу общаться с локальной Dll на клиентских компьютерах? Еще раз спасибо –

+1

Ну, вы можете написать плагин для браузера. [NPAPI] (https://developer.mozilla.org/en/Plugins) должен работать на всех браузерах, кроме IE. Вы можете взглянуть на [FireBreath] (http://www.firebreath.org/). Возможно, вы даже можете использовать апплет Java и использовать JNI для вызова некоторых методов DLL. Однако, поскольку вы требуете, чтобы ваши пользователи запускали Windows, где какая-то определенная DLL должна быть доступна, почему бы вам не сделать IE необходимым? –

+0

+1 Для идеи использования JNI, да, удалось обернуть, что JNI использует VC++, и у меня есть завернутая dll со мной, Dll отлично работает в командном режиме. AM собирается обернуть это в файле jar. Но как я могу загрузить этот файл jar в компоненте flex во время выполнения? –