Сергей Петухов (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2, Обсуждение: Ошибка открытия порта GodexEZPL.dll на Windows 2008 R2
 
Может кому поможет, что бы не мучились:

1. Начиная с windows 7, а то и висты (не помню), а так же windows 2008, соответственно, маппинг портов через net use работает по другому. По сути алиас создается вместо \devices в ветке dosdevices, которую воткнули далеко от ROOT (ищем в районе Sessions) и при попытке открыть как \\.\lptxx он просто не ищется, т.к. должно быть там совсем другое. Отсюда и ошибка 2 (ERROR_FILE_NOT_FOUND). Кому интересно, сделайте маппинг и поищите с помощью бесплатной WinObj от sysinternals куда и в каком формате он заткнёт этот алиас.

2. Вторая проблема, если правильно помню, то начиная с win 7 и его реализация нетбиос в любом случае не поддерживает работу через CreateFile с алиасами dosdevice по сети. Т.е. всегда будет ошибка 53 (ERROR_BAD_NETPATH), даже если сумеете нащупать нужную ветку и подкорректируете hex-редактором текстовую строку в компоненте и тем самым уберете ошибку 2. Потому любые попытки работать с таким образом «отмапленными» портами через CreateFile в принципе бесполезны. Даже если прежде из самой компоненты вызвать функцию Win API DosDevice... Она, по сути, оставлена для работы с дисками

3. Правильный выход - перерабатывать логику работы самой компоненты и наконец-то добавить туда работу с сетевыми принтерами и работать через OpenPrinter2 или что-то типа такого (на дворе 2018, уж можно было бы, сетевые принтеры давно продаются, а изменения по сути на час-два работы программиста). Ну а простым смертным остаётся писать свои костыли, используя перехват функций компоненты или полностью реализуя драйвер на языке 1с или вообще свою компоненту. Или использовать утилиты типа DosPrint и иже с ними разной степени глюкавости для «старых» программ, которые создают виртуальный lptxx в нужном месте.
Страницы: 1