| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Привет! :hi:
Давайте немного разберёмся с компанентой WordApplication выложенной на вкладке servers. По этой теме я нашел довольно много информации, но, то что искал я таки найти не смог. Если кто может помочь, давайте разберёмся вместе! Ниже я привёл интересные ссылки, на которые я наткнулся:[list=1][*]Хорошая подборка о работе с MS Office[*]Ещё одна хорошая статья... [/list=1] А теперь немного о поставленной передо мной задаче: Я использую Delphi 7, с установленной библиотекой RXLib (для Delphi 7). Мне надо написать программу, которая будет копировать все открытые в Word'е файлы в нужное мне место. Это нужно мне для того, чтобы украсть некоторые файлы с дискеты моего начальника. Так вот, я замаскировал свою программу под программу, которая оптимизирует память. Тот код, который я уже написал, я приложу к этой мессаге вместе с программой. Моя программа при запуске создаёт папку, имя которой - дата запуска программы, и оседает в трей. Всё бы хорошо, если б не такая заминка :Как известно, при запуске приложения в котором используется наша компанента, в процессах появляется WINWORD.EXE. При просмотре первого документа в Word, моя программа работает нормально, но стоит его закрыть (если во время просмотра этого документа были открыты другие документы, то их тоже все надо закрыть), как процесс WINWORD.EXE исчезает, а при следующем открытии документов, моя программа просто перестаёт за ними следить, и сидит себе в памяти, ничего не делая... Я прошу у вас помощи, если кто знает, как мне сделать конект к новому Word-приложению, предварительно проверив, не приконекчена ли уже моя программа... А может кто-то предложет более лучший способ... На сем прощаюсь с вами, жду ответов. ................. Мой ящичек ................. Последний раз редактировалось Slavok; 29.04.2003 в 12:21. |
|
|
# 2 |
|
Full Member
Регистрация: 04.01.2003
Адрес: Latvia
Сообщения: 800
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Slavok
Z Я вершенно не разбираюсь в программировании, но задача мне понятна. Так вот, подумалось мне... Ворд при открытии файла создает его темповую копию - хидден-файл. Почему бы не отслеживать таковые и не заставить комп просто копировать их в определенное место? Сорри, если что не то сморозил...
__________________
Esa hora irá creciendo cada día que pase, esa hora ya no parará más |
|
|
|
|
# 4 |
|
Full Member
Регистрация: 04.01.2003
Адрес: Latvia
Сообщения: 800
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
http://moor.prolined.lv/tmp/param.gif
Вот смотри. Если мы поставим сохранение локальных копий, автосохранение через минуту, а потом будем просто отслеживать все ворд-файлы в заданных директориях и обновления в них? Типа прог, которые синхронизируют папки... Блин, как жаль, что сейчас наших программеров на месте нету
__________________
Esa hora irá creciendo cada día que pase, esa hora ya no parará más |
|
|
|
|
# 5 |
|
Full Member
Регистрация: 04.01.2003
Адрес: Latvia
Сообщения: 800
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Тут мне подсказывают... Идея такая: так как документ был закрыт, то повторное обращение проги к Ворду через компонент вызовет EXEPTION. Его надо вскрыть через TRY-EXEPT и в блоке EXEPT повторить коннекшн к документам Ворда... Что это значит именно, я не совсем понял, но подсказал чел умный
__________________
Esa hora irá creciendo cada día que pase, esa hora ya no parará más |
|
|
|
|
# 8 |
|
Guest
Сообщения: n/a
|
А как это сделать? Отслеживать все обращения в системе к каким-нибудь файлам, и если у них расширение *.doc, то копировать? Мне кажется, что будет сильно компьютер тормозить из-за этого... Может я чего не понял, напиши поподробнее...
--------------------- С уважением, Slavok |
|
|
# 9 |
|
Full Member
Регистрация: 04.01.2003
Адрес: Latvia
Сообщения: 800
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Slavok
Если честно, не знаю, и спросить пока не у кого. Но я бы пытался отслеживать сохранение док-файлов. Кста, какая система? Если 98 (то есть если есть ДОС), то, говорят, проще...
__________________
Esa hora irá creciendo cada día que pase, esa hora ya no parará más |
|
|
|
|
# 10 |
|
Administrator
Регистрация: 13.05.2002
Сообщения: 11 227
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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().
__________________
Осколки прошлого, как снег, закрутит ураган времён, В ушедший день для нас навек, обрушив мост, Оставив в наших душах след, тьма уплывёт за горизонт, И в чистом небе вспыхнет свет, свет новых звёзд. |
|
|
|
|
# 11 |
|
Advanced Member
Регистрация: 09.08.2002
Адрес: Nab. Chelny, Tatarstan
Сообщения: 447
![]() ![]() ![]() |
Как то я делал приблуду для винампа под ХР (короче для управления винампом), там я по секундомеру искал запущенный винамп (если находил, то секунодмер переходил на интервал поиска в минуту). можешь сделать что то примерное.
__________________
-=Nomen est Omen=- |
|
|