![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переходник между чужим приложением и его файлами
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]зкопировать ярлык ехе файла туда куда надо относительно того где было