![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Всем привет,
мне нужно трекать Copy/Paste/Cut глобально. Т.е. если юзер хочет вставить дание з кліпборда в Word или Notepad я их сначала должен отформоматировать. Может кто уже делал такое, подскажите с чего начать? |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
||||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
с таким успехом можно написать "нишите свою ОС". Инжект ето не виход. здесь нужно скорее всего хукать Set/GetClipboardData. |
|||
|
||||
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Делаю так:
но как теперь привязать это к функции что будет вызывается при каждом визове SetClipboardData? |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
а я вам чо сказал там повыше??? ну тогда хукайте в своем процессе и надейтесь что кто то будет пользоваться вашим аддр пространством ТЗ - перехватить работу с клипбордом и отредактировать содержимое при необходимости. Фильтровать нужно в определённых приложениях (адресных пространствах) . Что для этого нужно - или ядро и там перехватить для всех и сразу, или же инжектится в нужные процессы и там перехватывать работу с клипбордом\мессагами окну. Ну еще можно по таймеру опрашивать клипборд что есть самый бредо выход. |
|||
|
||||
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
"ядро и там перехватить для всех и сразу" а есть какието ссылки из чего начать? Я инжектами не занималса никогда.И на сколько сложно ето сделать? |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
rokky05, если не знаете как инжектнутся то в ядро вам лесть пока не стоит)
можете заюзать SetWindowsHookEx с флагом на перехват оконных сообщений = вашу длл система прогружать будет во все приложения которые юзают user32.dll и там перехват... но вот поглядел в мсдн мимоходом, есть нотифи WM_CLIPBOARDUPDATE, регистрируем через AddClipboardFormatListener() и проверяем усё - так что не нужно вам инжектов) **post Vista only ![]() так что SetWindowsHookEx() ваш выход. хотя я бы делал инжект только в те процессы что мне интересны. Это сообщение отредактировал(а) ASMatic - 5.7.2011, 14:27 |
|||
|
||||
rokky05 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
AddClipboardFormatListener работает тольно на Copy\Cut, но на Paste он не риагирует. Вариант с SetWindowsHookEx мне впринципе подходит, но как сделать так что б длл система прогружала во все приложения которые юзают user32.dll? |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
читаем http://msdn.microsoft.com/en-us/library/ms...0(v=vs.85).aspx |
|||
|
||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
Можно более безпалевным способом(в ядре) через _gphkFirst(список хоткеев в системе).
Это сообщение отредактировал(а) bra1ny - 5.7.2011, 20:19 --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |