1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| // header
#include <windows.h>
// enleve avertissement de compilation
#pragma warning(disable: 4311) // convertion HHOOK -> int
// var
HINSTANCE thismod; // hisntance de la dll
HHOOK hhk; // hook
HWND prog; // HWND de la ou on veu envoyer le message
int mess; // param, "la ou on doit envoyer le message"
// fonction principale DLL
BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{
if(dwReason == DLL_PROCESS_ATTACH) thismod = hDll;
return 1;
}
// hook
LRESULT CALLBACK kbdWinAmp(int nCode, WPARAM wParam, LPARAM lParam)
{
// reception d'un message
if(nCode >= 0)
if(wParam == VK_F10)// appuie sur F10
SendMessage(prog, WM_COMMAND, NULL, mess);
return CallNextHookEx(hhk, nCode, wParam, lParam);
}
// mise en place hook
extern "C" __declspec(dllexport) int __stdcall Intercepte(HWND hWnd, int Case)
{
prog = hWnd;
mess = Case;
if(!hhk) // si pas deja mi
hhk = SetWindowsHookEx(WH_KEYBOARD, kbdWinAmp, thismod, 0);
return (int) hhk;
}
// desactivation hook
extern "C" __declspec(dllexport) void __stdcall Relache()
{
if(hhk) // si mi
{
UnhookWindowsHookEx(hhk);
hhk = 0;
}
} |
Partager