Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Fatal1st
1 / 1 / 0
Регистрация: 02.12.2010
Сообщений: 23
1

OPOS Claim не захватывает устройство в JS (IE)

27.02.2015, 11:40. Просмотров 484. Ответов 4
Метки нет (Все метки)

Добрый день. Мне необходимо подключить считыватель карт к html странице посредством ActiveX.
Считыватель Posiflex MR2200U. Подключается посредством USB. Установил Posiflex OPOS Control. В Control Manager определил имя устройства, написал следующий код
Javascript
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
29
30
31
32
33
34
35
36
37
38
39
    function msrop(){
 
        try { 
          if ( r = msro.Open('MR1') ) { log ( ER100 + ' ' + 'MSROP' + ' ' + r ); return }
          log(r);
        } 
        catch ( e ) { 
          log ( 'MSROP' , e ) ; return ;
        }
 
    }
 
    function msrcl(){
        try { 
          if ( r = msro.Claim(-1) ) { log ( ER100 + ' ' +  'MSRCL' + ' ' + r ); return }
          msro.DeviceEnabled = true ;
          msro.DataEventEnabled = true ;
          log(r);
        } 
        catch ( e ) { 
          log ( 'MSRCL' , e ) ; return ;
        }
    }
 
    function ol(){
 
        try { msro = new ActiveXObject ( 'OPOS.MSR' ) ; } catch ( e ) { alert(e) }
 
        bind ( msro ) ;
    }
 
    function bind( o ){
        function o::DataEvent(){
            log('<br/>' + '->Tracks read ' + 'T1: ' + o.Track1Data + ' T2: ' + o.Track2Data + 'T3: ' + o.Track3Data + 'T4: ' + o.Track4Data );
            log('<br/>' + '->DataEventEnabled ' + ( msro.DataEventEnabled = true ))
            var d = document.getElementById('track');
            d.innerHTML = o.AccountNumber;
        }
    }
HTML5
1
2
        <button onclick="msrop()">Open</button>
        <button onclick="msrcl()">Claim</button>
Код по нажатиям на кнопки открывает и захватывает устройство. При зачитывании карты выводит информацию о номер карты. Если этот код поместить в HTA приложение, то он работает без проблем, устройство открывается и захватывается.
Если запустить этот код как HTM страницу в IE 8, то устройство открывается успешно, а вот при захвате происходит исключение. Свойство ResultCode устанавливается в 104 (OposENoservice). При повторной попытке захвата метод возвращает ResultCode (102) OposEClaimed.

Настройки безопасности IE установлены на низкие.

Почему Claim не отрабатывает корректно в IE?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2015, 11:40
Ответы с готовыми решениями:

Как получить устройство, к которому приатачено ваше устройство в стеке устройств
Пишу минипорт драйвер для usb аудио устройства. Для создания устройства...

В диспетчере задачь неизвестное устройство, как узнать что за устройство?
в диспетчере задачь неизвестное устройство, как узнать что за устройство7 это...

Регулярка захватывает лишнее
Помогите правильно составить регулярное выражение для поиска &lt;p&gt;text&lt;/p&gt;. Я...

Захватывает и другую картинку .
Написал CSS чтобы оводил картинку пунктирной линией . .photo img { border:...

QTcreator не захватывает библиотеки
Доброго времени суток! Хотелось скомпилировать детектор границ Кенни...

4
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
27.02.2015, 14:21 2
Такое впечатление, что программы Windows работающие с интернетом это какая-то "вещь в себе", видимо кроме обычных прав на файлы, каталоги, ветки реестра "все эти" программы (IE, IIS) каким-то неведомым образом реализуют еще и свой уровень cекъюрности скрытый для непосвященных. В недавней теме: Excel.Application - Не удалось создать компонент ActiveX тоже обсуждались похожие грабли, которые так ничем и не закончились
Может на ваш Posiflex MR2200U дока какая хорошая имеется?
0
Fatal1st
1 / 1 / 0
Регистрация: 02.12.2010
Сообщений: 23
27.02.2015, 16:13  [ТС] 3
buggydancer, доки как таковой нет. Что интересно, подключил аналогично к html-странице сканер штрихкодов (другой фирмы - Metrologic, модель Eclipse 5145) через CLSID. В IE сканнер штрихкода отработал корректно. Оба устройства - OPOS, фактически используют одни и те же методы. Разница в том, что сканер определился как Metrologic USB Scanner (COM8), т.е. сэмулировался ком-порт. А картридер определился, как USB HID совместимое устройство. Может это влияет на то, что IE не может захватить устройство? Если так, то как сэмулировать подключение считывателя к com-порту?
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
27.02.2015, 21:25 4
Fatal1st, похоже все-таки что Metrologic подключился через какой-нибудь legacy драйвер, какбы получился workaround косяка с Posiflex, как сэмулировать программно rs232 из usb - это наверное лучше спросить у драйверщиков: http://www.cyberforum.ru/drivers-programming/

PS: кстати здесь: http://www.comx-computers.co.za/MR2200U-specifications-61223.htm
написано, что у Posiflex в интерфейсах имеются: "USB or RS-232 or PS/2" - может ошибка?
0
Fatal1st
1 / 1 / 0
Регистрация: 02.12.2010
Сообщений: 23
02.03.2015, 11:29  [ТС] 5
buggydancer, для Metrologic, как выяснилось, имеется драйвер-эмулятор ком-порта.
Цитата Сообщение от buggydancer Посмотреть сообщение
написано, что у Posiflex в интерфейсах имеются: "USB or RS-232 or PS/2" - может ошибка?
Подозреваю, что у них есть варианты с разными разъемами подключения.
1
02.03.2015, 11:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2015, 11:29

QTableWidget захватывает клавиатуру
Здравствуйте. как можно избежать захвата клавиатуры элементом QTableWidget?...

Не захватывает нажатие кнопки
пишу простенькую программу, суть в том, что на панели после клика можно начать...

Scanf не захватывает char
При использовании scanf со строковым типом происходит краш. В отладке бросает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru