Форум программистов, компьютерный форум CyberForum.ru

Как узнать и прочитать файл до того как с ним начнет работать другая программа - C++

Восстановить пароль Регистрация
 
godini
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 5
17.05.2011, 18:40     Как узнать и прочитать файл до того как с ним начнет работать другая программа #1
Здрувствуйте!
Подскажите пожалуйста, как я могу узнать и прочитать файл до того как с ним начнет работать другая программа. Например
пользователь хочет открыть некий документ, а мое приложение должно узнать какой документ собирается открыть пользователь и
прочитать его до того как с ним начнет работать Офис и тока потом Офис будет работать с ним.
думаю что что проще сделать через ВинАПИ, а в стандартных хуки не нашел решения.
пишу на с++ builder 2007.
Приму любые мысли и замечания !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 18:40     Как узнать и прочитать файл до того как с ним начнет работать другая программа
Посмотрите здесь:

CGraphView... Как с ним работать. C++
CTabCtrl - как с ним работать? C++
Как прочитать весь файл? C++
STL STACK как с ним работать? C++
C++ Одна программа записывает данные в файл, а другая их считывает и выводит на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 18:46     Как узнать и прочитать файл до того как с ним начнет работать другая программа #2
А ты знаешь c помощью какого приложения пользователь собирается открыть документ?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
17.05.2011, 18:48     Как узнать и прочитать файл до того как с ним начнет работать другая программа #3
Ну да, нужно хук ставить, правда я не знаю какой именно, т.к. подобной проблемой не задавался. А вот по поводу чтения документов Office могу сказать, что это геморрой. Хотел недавно писать программу для работы с текстом в Word'е, почитав что к чему отказался от этой идеи, т.к. нужно было ковыряться с англоязычной документацией MS, а это того не стоило) Word - это не просто текстовый файл, это файл у которого своя внутренняя архитектура, которую MS еще и скрывает. В сети есть оффициальная документация для файлов Office 2007, для 2010 вроде как пока в секрете.
godini
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 5
17.05.2011, 19:17  [ТС]     Как узнать и прочитать файл до того как с ним начнет работать другая программа #4
kravam
Да ! будет Office 2007 !

Kastaneda
Мне просто необходимо прочитать документ до того как Ворд откроет его и определить что Ворд закрылся, а там уже знаю что с ним делать =)
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
17.05.2011, 19:24     Как узнать и прочитать файл до того как с ним начнет работать другая программа #5
Цитата Сообщение от godini Посмотреть сообщение
Мне просто необходимо прочитать документ до того как Ворд
Я копал в сторону поменять цвет текста, но вроде как даже просто прочитать текст - уже геморрой.

Добавлено через 1 минуту
Я про то, что банальное:
C++
1
2
ifstream is("Text.doc");
is>>mystring;
уже не сработает.
godini
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 5
17.05.2011, 19:52  [ТС]     Как узнать и прочитать файл до того как с ним начнет работать другая программа #6
Ну в 2007 там сжатый ZIPом XML.

Вся фишка в том, что бы проследить за юзером что он хочет открыть и прочитать первым =)
как бы мысли есть, а вот точного пока ничего нет =(
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 19:56     Как узнать и прочитать файл до того как с ним начнет работать другая программа #7
Ну тогда тебе надо определить, с помощью какой именно API-функции Office 2007 открывает файл;
Это CreateFile или OpenFile, а то и обе вместе; может для открытия файла ещё какая есть, не знаю.
После чего пишешь прогу, осуществляющую перехват этих функций; то есть она должна в коде Office заменить участки, вызывающие вышеупомянутые функции на необходимый тебе код. То есть схема работы твоей проги такая:
1) Запускается цикл, который отслеживает все процессы в системе, как только находится нужный процесс (Office.exe или как его там)
2) Так сразу же исплоняется перехват API-функций
godini
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 5
17.05.2011, 20:08  [ТС]     Как узнать и прочитать файл до того как с ним начнет работать другая программа #8
Да, да я думал об этом, и узнал многие методы перехвата API, но осуществляются они над запущенном процессом.
а как я понимаю для открытия документа сначала посылается сообщение на запуск Офиса и передача ему пути до документа как атрибут, но вот как узнать так оно или нет =)
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 20:16     Как узнать и прочитать файл до того как с ним начнет работать другая программа #9
Даже если это и так, то есть как бы там не посылалось имя файла офису- как параметр в командной строке или иным путём, офису не обойтись без функции открытия файла, я их назвал, хоть ты тресни. Вот и перехватывай их. Карауль и как только офис начнёт работать- перехватывай.
godini
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 5
17.05.2011, 21:03  [ТС]     Как узнать и прочитать файл до того как с ним начнет работать другая программа #10
я тут уже ищу API монитор что бы уточнить чем же он там вызывается =)
нет ничего подходящего ?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 21:47     Как узнать и прочитать файл до того как с ним начнет работать другая программа
Еще ссылки по теме:

Что такое SDK и как с ним работать? C++
C++ Как сохранить контейнеры STL в файл. И как потом их прочитать из файла
Как прочитать двоичный файл C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 21:47     Как узнать и прочитать файл до того как с ним начнет работать другая программа #11
Программа? Есть
http://www.softogrand.ru/69913-process-monitor-29.html
Не получится- говори, я тебе саму прогу скину.
Yandex
Объявления
17.05.2011, 21:47     Как узнать и прочитать файл до того как с ним начнет работать другая программа
Ответ Создать тему
Опции темы

Текущее время: 00:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru