Здравствуйте.
Задача такая: есть COM-портовый сканер от Metrologic, поддерживающий стандарт OPOS. При установке драйвера для этого сканера на диск копируется управляющий объект OPOSScanner.ocx и сервисный объект (SO) MetroSO.dll (последнее — мое предположение на основе изучения записей в реестре). Далее с помощью утилиты (поставляется Metrologic) конфигурирую сканер (создаю профиль) и присваиваю всему этому имя. Далее в Delphi создаю проект с использованием OPOSScanner.ocx. Все работает замечательно.
Теперь вопрос: если я беру другой сканер (другой фирмы) тоже поддерживающий OPOS, как сделать так, чтобы моя программа использовала другой сервисный объект? Попытки с помощью утилиты regmon изучить записи в реестре и изменить наименование сервисного объекта ни к чему не привели — программа не работает с другим SO. И попутно такой вопрос: возможно ли это вообще без изменения программы? Ведь по теории OPOS для того и есть, чтобы программы не зависели от конкретного железа.
Все термины, как и понимание OPOS взято из документации на английском, а с ним я не очень дружу, поэтому не судите строго. Буду очень признателен любым замечаниям