Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена стандартного копирования Windows, Собственно как реализовать замену? 
:(
    Опции темы
D_soyer
Дата 24.4.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



  Нужно заменить копирование с помощью вин. метода на свою программу, может кто подскажет, как:
 - запретить запуск копирования виндой.
 - получить адреса, для передачи в свою программу.
  Буду очень благодарен. Заранее спасибо.
PM MAIL   Вверх
bartram
Дата 25.4.2007, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата(D_soyer @  25.4.2007,  01:44 Найти цитируемый пост)
 Нужно заменить копирование с помощью вин. метода на свою программу, может кто подскажет, как:
 - запретить запуск копирования виндой.
 - получить адреса, для передачи в свою программу.
  Буду очень благодарен. Заранее спасибо. 

Это решается перехватом Api функций:
Код

CopyFileA
CopyFileW

Если не ошибаюсь....
Поиск: Перехват Api



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
D_soyer
Дата 25.4.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Цитата(bartram @  25.4.2007,  09:23 Найти цитируемый пост)
CopyFileA, CopyFileW


Честно говоря не нашел толкового описания их, но, по-моему, это все таки не то, что мне нужно. Я понимаю, что нужна ловушка, вот только что ловить? А главное, как получить из обозревателя нужные адреса?
PM MAIL   Вверх
bartram
Дата 25.4.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата(D_soyer @  25.4.2007,  13:34 Найти цитируемый пост)
как получить из обозревателя нужные адреса? 

Какие ещё адреса?


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
D_soyer
Дата 25.4.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Цитата(bartram @  25.4.2007,  13:53 Найти цитируемый пост)
Какие ещё адреса?

пример: я делаю ctrl+c и ctrl+v - как только вставляю, нужно отменить копирование виндой и передать пути копирования в мою программу.
PM MAIL   Вверх
bartram
Дата 25.4.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Плохо искал.
Вот из MSDN:
http://msdn2.microsoft.com/en-us/library/aa363851.aspx
Именно их тебе и надо перехватывать

Это сообщение отредактировал(а) bartram - 25.4.2007, 21:18


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
D_soyer
Дата 25.4.2007, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



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

PM MAIL   Вверх
bartram
Дата 26.4.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Тебе надо почитать про Перехват Api. Ссылку давал во втором посте


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
D_soyer
Дата 26.4.2007, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



bartram
Хорошо, допустим я разобрался с перехватом и перехватил сообщение о копировании. Значит мне нужно зарегистрировать в системе процесс(dll), для постоянного наблюдения, так ведь? Либо можно организовать драг-н-дроп с правой клавиши, уже не трогая копирование виндовс(произодя копирование непосредственно моей программой). Но и первый и второй способ требует регистрации процесса, это для меня прямо тупик, может подкинешь идею?
PM MAIL   Вверх
dumb
Дата 27.4.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(D_soyer @  26.4.2007,  23:21 Найти цитируемый пост)
допустим я разобрался с перехватом

вот когда разберешься, и появятся конкретные проблемы - тогда и пиши. а на данный момент твои мысли по теме представляют из себя бессмысленный поток слов.
PM MAIL   Вверх
D_soyer
Дата 27.4.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



function CopyFileHookProc(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall; - хук копирования файла. Мне нужно отлавливать его все время, после установки(даже когда моя программа не запущена). Вопрос: как это реализовать?
PM MAIL   Вверх
bartram
Дата 27.4.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата(D_soyer @  27.4.2007,  14:31 Найти цитируемый пост)
function CopyFileHookProc(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall; - хук копирования файла. Мне нужно отлавливать его все время, после установки(даже когда моя программа не запущена). Вопрос: как это реализовать? 

При запуске системы подгружай ко всем процессам через реестр.


Это сообщение отредактировал(а) bartram - 27.4.2007, 13:09


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
D_soyer
Дата 27.4.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



bartram

Я не знаю, как это сделать. Понимаю принцип, но не техническую часть. Облазил реестр на примере Киллкопи, вот что нашел:

- как я понял, это хендлы контекстного меню (HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\KillCopy\{A5C2457A-87BC-324E-8124-0025DC10AA03})
HKEY_CLASSES_ROOT\*\shellex\DragDropHandlers\KillCopy\{A5C2457A-87BC-324E-8124-0025DC10AA03} - это один из вариантов, которые мне были нужны.
Цитата(D_soyer @  26.4.2007,  23:21 Найти цитируемый пост)
...Либо можно организовать драг-н-дроп с правой клавиши, уже не трогая копирование виндовс...

Эти значения: {A5C2457A-87BC-324E-8124-0025DC10AA03} берутся из головы?

- далее HKEY_CLASSES_ROOT\Folder - это, наверно, хендлы на драг-н-дроп папки(?)

- и по идее сама регистрация Киллкопи: HKEY_CLASSES_ROOT\CLSID\{A5C2457A-87BC-324E-8124-0025DC10AA03}\killcopy.dll

PM MAIL   Вверх
bartram
Дата 28.4.2007, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Код тут
Что непонятно- спрашивай


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.