IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   MS Word из под Delphi (+программа и исходники) (http://www.imho.ws/showthread.php?t=28183)

Slavok 29.04.2003 11:57

MS Word из под Delphi (+программа и исходники)
 
Вложений: 1
Привет! :hi:
Давайте немного разберёмся с компанентой WordApplication выложенной на вкладке servers. По этой теме я нашел довольно много информации, но, то что искал я таки найти не смог. Если кто может помочь, давайте разберёмся вместе!
Ниже я привёл интересные ссылки, на которые я наткнулся:[list=1][*]Хорошая подборка о работе с MS Office[*]Ещё одна хорошая статья... [/list=1]
А теперь немного о поставленной передо мной задаче:
Я использую Delphi 7, с установленной библиотекой RXLib (для Delphi 7).
Мне надо написать программу, которая будет копировать все открытые в Word'е файлы в нужное мне место. Это нужно мне для того, чтобы украсть некоторые файлы с дискеты моего начальника. Так вот, я замаскировал свою программу под программу, которая оптимизирует память. Тот код, который я уже написал, я приложу к этой мессаге вместе с программой.
Моя программа при запуске создаёт папку, имя которой - дата запуска программы, и оседает в трей. Всё бы хорошо, если б не такая заминка:idontnow: :
Как известно, при запуске приложения в котором используется наша компанента, в процессах появляется WINWORD.EXE. При просмотре первого документа в Word, моя программа работает нормально, но стоит его закрыть (если во время просмотра этого документа были открыты другие документы, то их тоже все надо закрыть), как процесс WINWORD.EXE исчезает, а при следующем открытии документов, моя программа просто перестаёт за ними следить, и сидит себе в памяти, ничего не делая...:баран:
Я прошу у вас помощи, если кто знает, как мне сделать конект к новому Word-приложению, предварительно проверив, не приконекчена ли уже моя программа... А может кто-то предложет более лучший способ...
На сем прощаюсь с вами, жду ответов.

.................
Мой ящичек
.................

madmoor 29.04.2003 12:32

Slavok
Z Я вершенно не разбираюсь в программировании, но задача мне понятна. Так вот, подумалось мне... Ворд при открытии файла создает его темповую копию - хидден-файл. Почему бы не отслеживать таковые и не заставить комп просто копировать их в определенное место? Сорри, если что не то сморозил...

Slavok 29.04.2003 12:44

Идея конечно хорошая, на как это делать? Ведь с дискет эти файлы записуются в одно место (в TEMP наверное), с винта в другое (в той же папке, которой и сам документ). Мне кажется, что этот способ сложнее, чем тот, который выбрал я...

madmoor 29.04.2003 13:20

http://moor.prolined.lv/tmp/param.gif

Вот смотри. Если мы поставим сохранение локальных копий, автосохранение через минуту, а потом будем просто отслеживать все ворд-файлы в заданных директориях и обновления в них? Типа прог, которые синхронизируют папки... Блин, как жаль, что сейчас наших программеров на месте нету :(

madmoor 29.04.2003 13:33

Вложений: 1
Тут мне подсказывают... Идея такая: так как документ был закрыт, то повторное обращение проги к Ворду через компонент вызовет EXEPTION. Его надо вскрыть через TRY-EXEPT и в блоке EXEPT повторить коннекшн к документам Ворда... Что это значит именно, я не совсем понял, но подсказал чел умный :)

Slavok 29.04.2003 13:45

[QUOTE] вызовет EXEPTION. Его надо вскрыть через TRY-EXEPT и в блоке EXEPT повторить коннекшн к документам Ворда... /QUOTE]


Нет там эксепшена. Мне через таймер его что ли делать? Всё время конектиться? Это не хороший тон программирования... :(

madmoor 29.04.2003 14:03

А если прогу привязать не к процессу винворд, а к открытию или сохранению файла DOC?

Slavok 29.04.2003 15:29

А как это сделать? Отслеживать все обращения в системе к каким-нибудь файлам, и если у них расширение *.doc, то копировать? Мне кажется, что будет сильно компьютер тормозить из-за этого... Может я чего не понял, напиши поподробнее...

---------------------
С уважением, Slavok

madmoor 29.04.2003 16:00

Slavok
Если честно, не знаю, и спросить пока не у кого. Но я бы пытался отслеживать сохранение док-файлов. Кста, какая система? Если 98 (то есть если есть ДОС), то, говорят, проще...

helldomain 30.04.2003 06:03

Pipl. Kto razbiraetsya w programmirowanii znaet nawernoe o sisteme hookinga funkcij iz dllow w process. Fokus w chem: dopustim mi hotim otslejiwat wizow CreateFile() iz KERNEL32.DLL - pishem dll'inu kotoraya eksportiruet nash lichnij CreateFile() i pri zagruzke processa w pamyat prikleiwaem emu nash hooker (nash DLL). Posle etogo propatchiwaem (w pamyati) import list. I otslejiwaem wse CreateFile().

ReapeR 30.04.2003 12:28

Как то я делал приблуду для винампа под ХР (короче для управления винампом), там я по секундомеру искал запущенный винамп (если находил, то секунодмер переходил на интервал поиска в минуту). можешь сделать что то примерное.


Часовой пояс GMT +4, время: 09:53.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.