Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Глобальный хук на все события


Автор: Sergio 24.9.2008, 23:27
Здраствуйте. 
Какой параметр  нужно использовать чтобы поставить хук на все события в ОС?
Спасибо.

Автор: Andrey44 25.9.2008, 08:49
SetWinEventHook с параметром EVENT_SYSTEM_DRAGDROPSTART - я думаю стоит попробовать. smile 

Автор: Andrey44 25.9.2008, 10:26
Кстати ой, сори!
Говорится ведь о 
Цитата(Sergio @  24.9.2008,  23:27 Найти цитируемый пост)
хук на все события в ОС

тогда EVENT_MIN и EVENT_MAX smile 

Автор: Sergio 25.9.2008, 13:04
Andrey44, спасибо. А этот хук на что ставиться? EVENT_SYSTEM_DRAGDROPSTART
Относитья ли драг/дроп хуки к тому когда просто перетягивать файлы на робочем столе(при этом ни в какую апликуху не дропать)

Автор: Andrey44 25.9.2008, 14:02
Ну да, это хук на системный эвент.
Цитата(Sergio @  25.9.2008,  13:04 Найти цитируемый пост)
EVENT_SYSTEM_DRAGDROPSTART
Относитья ли драг/дроп хуки к тому когда просто перетягивать файлы на робочем столе(при этом ни в какую апликуху не дропать)


Автор: Sergio 26.9.2008, 17:55
Andrey44, сделал как Вы писали:
Код

LRESULT WINAPI dragFilesProc(int nCode, WPARAM wParam, LPARAM lParam) 
{
  printf("Hook\n");
}

SetWindowsHookEx( EVENT_SYSTEM_DRAGDROPSTART, dragFilesProc, 0, 0 );

Выводит в консоль каждый раз при передвижении курсора мыши. 
А не при перетаскывании файлов. Что я не правильно сделал?

P.S. Код написал на абстрактном уровне

Автор: Andrey44 29.9.2008, 08:09
Sergio, 
Цитата(Andrey44 @  25.9.2008,  08:49 Найти цитируемый пост)
SetWinEventHook с параметром EVENT_SYSTEM_DRAGDROPSTART - я думаю стоит попробовать. smile


А вы пишете


Цитата(Sergio @  26.9.2008,  17:55 Найти цитируемый пост)
SetWindowsHookEx( EVENT_SYSTEM_DRAGDROPSTART, dragFilesProc, 0, 0 );


Если вы не заметили - то функции имеют разное название. smile 

Автор: Sergio 29.9.2008, 22:26
Я так полагаю что в параметры этой функции ( SetWinEventHook ) нужно мин значение поставить EVENT_SYSTEM_DRAGDROPSTART и максимально EVENT_SYSTEM_DRAGDROPEND соответственно для мониторинга таскания файлов.

Вот что сообразил:  smile
Код

SetWinEventHook(0x000E, 0x000F, GetModuleHandle(curModule.ModuleName), proc, 0, 0, 0);

Только вот ничего не происходит)

Автор: Andrey44 30.9.2008, 08:00
Sergio, ну посмотри-же в MSDN - там есть целый пример от майкрософта, 
они-же старались, писали, думали что их все-таки будут читать smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)