![]() |
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-приложению, предварительно проверив, не приконекчена ли уже моя программа... А может кто-то предложет более лучший способ... На сем прощаюсь с вами, жду ответов. ................. Мой ящичек ................. |
Slavok
Z Я вершенно не разбираюсь в программировании, но задача мне понятна. Так вот, подумалось мне... Ворд при открытии файла создает его темповую копию - хидден-файл. Почему бы не отслеживать таковые и не заставить комп просто копировать их в определенное место? Сорри, если что не то сморозил... |
Идея конечно хорошая, на как это делать? Ведь с дискет эти файлы записуются в одно место (в TEMP наверное), с винта в другое (в той же папке, которой и сам документ). Мне кажется, что этот способ сложнее, чем тот, который выбрал я...
|
http://moor.prolined.lv/tmp/param.gif
Вот смотри. Если мы поставим сохранение локальных копий, автосохранение через минуту, а потом будем просто отслеживать все ворд-файлы в заданных директориях и обновления в них? Типа прог, которые синхронизируют папки... Блин, как жаль, что сейчас наших программеров на месте нету :( |
Вложений: 1
Тут мне подсказывают... Идея такая: так как документ был закрыт, то повторное обращение проги к Ворду через компонент вызовет EXEPTION. Его надо вскрыть через TRY-EXEPT и в блоке EXEPT повторить коннекшн к документам Ворда... Что это значит именно, я не совсем понял, но подсказал чел умный :)
|
[QUOTE] вызовет EXEPTION. Его надо вскрыть через TRY-EXEPT и в блоке EXEPT повторить коннекшн к документам Ворда... /QUOTE]
Нет там эксепшена. Мне через таймер его что ли делать? Всё время конектиться? Это не хороший тон программирования... :( |
А если прогу привязать не к процессу винворд, а к открытию или сохранению файла DOC?
|
А как это сделать? Отслеживать все обращения в системе к каким-нибудь файлам, и если у них расширение *.doc, то копировать? Мне кажется, что будет сильно компьютер тормозить из-за этого... Может я чего не понял, напиши поподробнее...
--------------------- С уважением, Slavok |
Slavok
Если честно, не знаю, и спросить пока не у кого. Но я бы пытался отслеживать сохранение док-файлов. Кста, какая система? Если 98 (то есть если есть ДОС), то, говорят, проще... |
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().
|
Как то я делал приблуду для винампа под ХР (короче для управления винампом), там я по секундомеру искал запущенный винамп (если находил, то секунодмер переходил на интервал поиска в минуту). можешь сделать что то примерное.
|
| Часовой пояс GMT +4, время: 09:53. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.