Конференция "Основная" » Delphi & FineReader [D6, WinXP]
 
  • ыы (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...
 
Конференция "Основная" » Delphi & FineReader [D6, WinXP]
Есть новые Нет новых   [134491   +8][b:0][p:0.001]