-
ыы (27.05.08 11:28) [0]Импортирую FineReader.exe в качестве библиотеки типов (версия 7.0 Scripting Edition, если это имеет значение). Нужно создать два экземпляра приложения (насколько я понимаю, каждый экземпляр в любой момент времени может работать только с одним пакетом, а мне нужно более одного пакета). Если создаватьApp1 := CoApplication.Create; App2 := CoApplication.Create;
, создаётся только один экземпляр процесса FineReader.exe, к которому и даётся интерфейс. А как всё-таки подключиться к разным экземплярам? -
ыы (27.05.08 11:30) [1]Дополнение. Если вручную запустить несколько процессов, соединение всегда происходит с первым.
-
ыы (29.05.08 12:10) [2]up
-
Сергей М. © (30.05.08 12:27) [3]
> Импортирую FineReader.exe в качестве библиотеки типов
Надо было не просто импортировать БТ, а инсталлировать в палитру компоненты-рапперы, у которых для означенной цели можно будет использовать св-во ConnectKind=ckNewInstance -
ыы (30.05.08 13:38) [4]Попробовал... Пакет сказал, что установился, но новых компонентов в палитру не добавилось. Кроме того, это вряд ли помогло бы, так как у TOleServer при ConnectKind=ckNewInstance попросту вызывается CreateComObject(), как и в конструкторе CoApplication.
Ещё и техподдержка молчит... :-( -
Сергей М. © (30.05.08 14:17) [5]Ну тогда пробуй подлючиться к требуемому "вручную" созданному экз-ру через ROT (Running Object Table).
В помощь:
http://www.rsdn.ru/forum/message/2585863.flat.aspx -
ыы (30.05.08 14:20) [6]спасибо, буду пробовать. идея была, как реализовать -- не знал.
-
ыы (09.06.08 12:37) [7]Для рассматриваемого Excel метод работает, а вот с FineReader вариант не проходит: IEnumMoniker после первого же Next возвращает S_FALSE...