информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаВсе любят медАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[c++] как же все таки перехватить wm_paste в системе? 01.06.01 14:27  Число просмотров: 1056
Автор: prop Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проверь Spy++ куда идут сообщения, когда ты не можешь их поймать. По-идее, WH_GETMESSAGE должен ловить все сообщения из очереди окна. Если не поможе, то остается только сабклассировать процедуру окна - тогда мимо тебя не проскочит ни одно сообщение.
<programming>
[c++] как же все таки перехватить wm_paste в системе? 31.05.01 16:42  
Автор: Vital Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как поставить ловушку(Hook) на все сообщения WM_PASTE?
Если я ставлю фильтр WH_GETMESSAGE и в функции ловушки пишу:

LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0) return CallNextHookEx(hhkMes, nCode, wParam, lParam);
if (nCode == HC_ACTION)
{
LPMSG lpMsg;
lpMsg = (MSG*)lParam;
if (lpMsg->message == WM_PASTE)
{
MessageBeep(1);
}
}
CallNextHookEx(hhkMes, nCode, wParam, lParam);
return 0;
}

то ловятся только те сообщения, которые посланы через главное меню->
вставить и комбинацию клавишь Ctrl+v, а через контекстное меню->
вставить не ловятся.

Фильтры WH_MSGFILTER, WH_SYSMSGFILTER улавливают только обращения к меню, а WM_PASTE не возвращают.

Нужно чтобы работало под Win9x\NT\2000.

Спасибо Vital.
[c++] как же все таки перехватить wm_paste в системе? 01.06.01 14:27  
Автор: prop Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проверь Spy++ куда идут сообщения, когда ты не можешь их поймать. По-идее, WH_GETMESSAGE должен ловить все сообщения из очереди окна. Если не поможе, то остается только сабклассировать процедуру окна - тогда мимо тебя не проскочит ни одно сообщение.
Попробуй вместо wh_getmessage использовать wh_callwndproc, может, поможет.. 01.06.01 11:40  
Автор: WiB Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Все верно, только надо еще установить твою ловушку. Используй SetWindowsHookEx 31.05.01 19:16  
Автор: WiB Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[c++] я спрашиваю не как установить ловушку физически, а какой фильтр в ловушке использовать, чтобы отловить все wm_paste в системе 31.05.01 20:53  
Автор: Vital Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Неужели никто c этим не сталкивался?
[c++] я спрашиваю не как установить ловушку физически, а какой фильтр в ловушке использовать, чтобы отловить все wm_paste в системе 01.06.01 19:06  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
все верно делаешь, только для меню и прочей фигни, тебе не WM_PASTE ловить надо, а WM_COMMAND
я только вспомнил это. в свое время делал такую фигню.
короче все что идет от меню - это WM_COMMAND
так что тут у тебя должны стоять несколько ловушек. надеюсь это будет более понятно :))))

if (message == WM_PASTE)
определенно это то что мне надо.
else if (message == WM_COMMAND)
ВОЗМОЖНО это то что мне надо, надо выяснить.

Удачи
type of hook to install будет wh_sysmsgfilter. затем - sysmsgproc(...) где lparam будет указывать to an msg message structure. пробуй. 01.06.01 16:37  
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach