Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переходник между чужим приложением и его файлами


reqyz ©   (2010-02-13 07:44:00) 

такой вопрос: как зделать программу, с помощью которой можно было бы изменять направление запроса другой программы.
Подробно: Открыть чужое приложение, которое было перенесено из папки, с файлами, ему принадлежащими, и когда оно попытается обратиться к ним, перенаправлять запрос туда, где эти файлы находятся, желательно, чтоб это можно было реализовать по сети, если exe файл находится на другом компьютере, относительно своих файлов?


Slym   (2010-02-14 18:10:00) [1]

нужно сделать перехват
по типу http://yandex.ru/yandsearch?text=ReplaceIATEntry&lr=237
ReplaceIATEntryInAllModules(kernel32,'ReadFile',@Intercept_ReadFile);

могу накидать завтра пример подмены причтении...
(писал для себя шифровалку файлов налету - на диске шифрованый, а приложение читает нормальный, прослойка незаметно дешифрует)


Дмитрий Белькевич   (2010-02-13 18:30:00) [2]


> с другой стороны, начиная с висты уже должно (почитал по
> теме), там сделали нормальные (или как пишет мелкософт "расширенные").
>


Не прошло и 30 лет :) В своё время на XP сильно не хватало.


sniknik   (2010-02-13 16:18:00) [3]

с другой стороны, начиная с висты уже должно (почитал по теме), там сделали нормальные (или как пишет мелкософт "расширенные").


sniknik   (2010-02-13 14:59:00) [4]

а хотя, да, понял... ярлыки в винде, это не тоже самое что симлинки в линуксе... так работать не будет. ;(


sniknik   (2010-02-13 14:29:00) [5]

> Ну и как ты перенаправишь ярлыком?
как написал, только тут одна промежуточная папка будет. для содержания собственно ярлыка
делаем папку "C:\MyProga", в ней ярлык "Data", при  создании первым "размещение объекта"  сетевой путь. и все.
тогда обращение по  "C:\MyProga\Data\base.db" приведет на путь "C:\MyProga" + ярлык "Data" по его сетевому пути на файл base.db. что и требовалось.


oldman   (2010-02-13 13:34:00) [6]


> sniknik ©   (13.02.10 13:03) [12]
> > да не хочет автор с ярлыками работать.
> плевать на автора. это ты сказал, что если в проге жесткие
> обращения к файлам то никак.


FileName:="C:\MyProga\Data\base.db"
AutoOpen:=True

Ну и как ты перенаправишь ярлыком?


sniknik   (2010-02-13 13:03:00) [7]

> да не хочет автор с ярлыками работать.
плевать на автора. это ты сказал, что если в проге жесткие обращения к файлам то никак.

> Он хочет велосипед с треугольными колёсами под названием "веб-сервис/клиент"...
ну, то что "авторы" зачастую не решают ЗАДАЧУ, а изгаляются над своим извращенным ее пониманием, и только частного пути решения (которое иногда и не путь вовсе, а тупик), это давно не секрет.


Плохиш   (2010-02-13 12:58:00) [8]


> reqyz   (13.02.10 12:10) [6]
>
> попытаюсь разбить задачу
> 1. В момент обращения программы к файлам перехватить это
> обращение, возможно используя хуки(hook).

Перехватываешь функцию открытия/создания файла

> 2.перенаправить обращение к файлам, туда, где они на самом
> деле лежат(по сети на другой компьютер)
>

Читаешь файл откуда хочешь

> 3.вернуть те значения, программе, которые обработали её
> файлы,
>

Возвращаешь значения в формате перехваченной в пункте 1 функции


> вот, кто знает, как это зделать?
>

Я знаю как это сделать.


Плохиш   (2010-02-13 12:54:00) [9]


> sniknik ©   (13.02.10 12:44) [8]

Да ладно, не прикалывайся :-) Он хочет велосипед с треугольными колёсами под названием "веб-сервис/клиент"...


oldman   (2010-02-13 12:51:00) [10]


> sniknik ©   (13.02.10 12:44) [8]


да не хочет автор с ярлыками работать.
ему хук надо переподвывернутый.


sniknik   (2010-02-13 12:44:00) [11]

> Если в чужой программе нет Open или Path, а жестко прописаны файлы, то никак.
на том диске куда она обращается делаешь ярлык с именем папки куда она пытается обратится, и ссылкой на сетевой ресурс... все.
???


reqyz   (2010-02-13 12:13:00) [12]

иногда место "файл", пишу "фал", буква "Й" западает, не обращайте внимание)


reqyz   (2010-02-13 12:10:00) [13]

попытаюсь разбить задачу
1. В момент обращения программы к файлам перехватить это обращение, возможно используя хуки(hook).
2.перенаправить обращение к файлам, туда, где они на самом деле лежат(по сети на другой компьютер)
3.вернуть те значения, программе, которые обработали её файлы,
т.е. как бы стать мостом между программой и её фалами
вот, кто знает, как это зделать?


Anatoly Podgoretsky   (2010-02-13 12:01:00) [14]

> oldman  (13.02.2010 11:02:03)  [3]

Если бы он мог, а так "партия дай порулить"


reqyz   (2010-02-13 11:07:00) [15]


> Если в чужой программе нет Open или Path, а жестко прописаны
> файлы, то никак.Проще написать свою программу по работе
> с этими файлами.

нужно отловить поток, который пошлет эта программа, это осуществимо, просто я не умею
> ЗЫ: Если программа берет данные из "своей" папки, то в ярлыке,
>  кажется, указывается "рабочий каталог"...

и что, я заранее знаю где раньше лежал исполнительный фал, вопрос то не в этом


oldman   (2010-02-13 11:02:00) [16]


> как зделать программу, с помощью которой можно было бы изменять
> направление запроса другой программы.


Если в чужой программе нет Open или Path, а жестко прописаны файлы, то никак.
Проще написать свою программу по работе с этими файлами.

ЗЫ: Если программа берет данные из "своей" папки, то в ярлыке, кажется, указывается "рабочий каталог"...


reqyz   (2010-02-13 11:01:00) [17]

возможно мой вопрос был не совсем понятен, exe фал может находиться на другом компьютере, а программа должна отлавливать его обращения к его файлам, направлять их по сети на нужный компьютер, там обрабатывать и посылать обратно


KilkennyCat   (2010-02-13 10:35:00) [18]

зкопировать ярлык ехе файла туда куда надо относительно того где было


Наверх

Титульная страница Поиск, карта сайта Написать письмо