Перестает работать печать из программы vb.net с использованием активных отчетов - PullRequest
0 голосов
/ 23 декабря 2010

и извините за не совсем вопрос программирования, но если кто-то может помочь, я подумал, что это место после поиска в гугле и ничего не находя.

Я должен справиться с дерьмовым (предположительно, vb6) .net приложением для печати всевозможных отчетов. После установки он печатает «ОК», но если я печатаю с использованием другой программы, эта программа перестает печатать (останавливается на модальных блоках, сообщая, что это «формирование отчета»).

Из того, что я собрал с изучением .exe и безнадежной поддержки (очевидно, никто не имеет этой проблемы, они не могут понять, что не так), он использует actrpt2.dll, который, кажется, называется ActiveReports2. Если я зарегистрирую эту dll в regsvr32, программа будет печатать, и после печати из любой другой программы мне нужно снова зарегистрировать dll, прежде чем печать будет работать на этой.

Так что я сделал быстрый взлом .bat для этого .. Но программист во мне не может понять, почему этот материал с DLL продолжает происходить (хорошо, это Windows ...) - если кто-нибудь знает, что происходит, и как можно ли это исправить, пожалуйста, скажите мне, я был бы признателен:)

1 Ответ

2 голосов
/ 23 декабря 2010

Возможно, ваша "другая программа" перезаписывает регистрацию actrpt2.dll, например, путем регистрации более старой версии ActiveReports, которую она хранит рядом с exe-файлом.

Самое простое "исправление" - запуск обоих приложений (или просто "другой программы") с правами, отличными от прав администратора, чтобы он вообще не мог регистрировать (или повреждать) компоненты COM.

...