Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > WordDocument


Автор: EDuard 11.5.2006, 16:12
Привет. 
Столкнулся с такой задачей.
Есть программа, она открывает  Подряд несколько документов Ворд, читает данные, после чего закрывает их. При открытии содержимое документов можно увидеть на экране.
Можно ли из своей программы обратится к этим документам, в момент их открытия первой? 

Автор: Albinos_x 11.5.2006, 16:57
Цитата(EDuard @  11.5.2006,  16:12 Найти цитируемый пост)
Можно ли из своей программы обратится к этим документам, в момент их открытия первой? 

можно, но не нужно... 

Автор: EDuard 11.5.2006, 17:28
Albinos_x, очень нужно. 

Автор: Albinos_x 11.5.2006, 17:57
дело в том, что пока та программа работает с документом, внешнее воздействие пользователя или другой программы может вызвать сбой первой с сообщением "Сервер занят", "функция не доступна" или чем-то наподобии. Соответственно если там прога делает периодические приостановки, для пропуска накопившихся виндовс сообщений, в этот момент можно присоединиться к доку и попытаться его обработать. Но это заведомо будет вызывать глюки первой и второй проги. Поэтому когда я делаю проги работающие с сервером, то пока идет работа моей программы, ворд(ексель) делаю не видимым, тем самым уменьшая фактор воздействия пользователя на результат обработки. 
Думаю проще будет только отслеживать открытые программы и документы и пути к ним, и после обработки самому запускать и обрабатывать те документы... 

Автор: EDuard 11.5.2006, 18:28
Albinos_x, спасибо.
Но в данном случае мне нужно именно присоеденится к документудля обработки, как это можно реализовать? 

Автор: Albinos_x 11.5.2006, 18:40
в моей статье это было указано
http://forum.vingrad.ru/index.php?showtopic=84634
при инициализации сервера, можно указать, создавать ему новый экземпляр или присоединиться к имеющемуся:
Цитата

Свойство WordApplication1.ConnectKind  
  может принимать следующие значения:  
   
 - ckNewInstance - всегда создавать новый экземпляр сервера  
 - ckRunningOrNew - присоединиться к выполняемому серверу или создать новый экземпляр  
 - ckRunningInstance - Только присоединиться к выполняющемуся серверу  
 - ckRemote - Присоединиться к удалённому серверу Сочетается со свойством RemoteMachineName  
 - ckAttachToInterface - не присоединяться к серверу. Вместо этого приложение обеспечивает интерфейс методом ConnectTo 


Кроме того у сервера есть свойство Documents - являющееся массивом доков, следовательно можно перебирать в поисках нужного... 

Автор: EDuard 12.5.2006, 17:36
Albinos_x, спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)