ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

12.01.2010, 15:37
|
|
Новичок
Регистрация: 20.11.2009
Сообщений: 11
Провел на форуме: 88419
Репутация:
0
|
|
Проблема с хуком мыши
Ребята, помогите хуки осилить!
Задача - приложение висит в фоновом режиме и чего-то делает при нажатии мышиних кнопок (например, выводит сообщение.) порылся в сети, почитал, слепил такой вот код:
Код:
#include <windows.h>
#pragma hdrstop
#pragma argsused
HHOOK HookHandle;
//-----------вывод ошибки-----------------------------
void ErrorMessage(void)
{LPVOID lpMsgBuf;
FormatMessage //формат сообщения об ошибке
(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0,
(LPTSTR)&lpMsgBuf,
0,
NULL);
MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
//------процедура фильтр хука------------------------------
LRESULT CALLBACK FilterFunc(int Code, WORD WParam, long LParam)
{if (Code == HC_ACTION)
{switch (WParam)
{case WM_LBUTTONDOWN : MessageBox(0,"Нажата левая клавиша","Сообщение", MB_OK); break;
case WM_RBUTTONDOWN : MessageBox(0,"Нажата правая клавиша","Сообщение", MB_OK); break;};
};
return CallNextHookEx(0, Code, WParam, LParam);
}
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{HookHandle = SetWindowsHookEx(WH_JOURNALRECORD, reinterpret_cast<HOOKPROC>(FilterFunc), hInstance, NULL); //Ставим хук
if (HookHandle == NULL) ErrorMessage(); //Если ошибка - выводим сообщение
return 0;
}
Вычитал, что если использовать WH_JOURNALRECORD - то dll создавать не надо.
В итоге ошибок не выдает, но и рабтать - не работает! Подскажите, в чем ошибся?
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|