Tastatur Hook einrichten
-
Hallo ich habe folgende DLL erstellt
#include "dll.h" #pragma data_seg ("shared") HHOOK g_hTastaturHook = NULL; //Handle Hook als SHARED #pragma data_seg () #pragma comment(linker,"/SECTION:shared,RWS") #pragma data_seg ("shared") HINSTANCE g_hInst = NULL; //Handle dll #pragma data_seg () #pragma comment(linker,"/SECTION:shared,RWS") BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ , DWORD reason /* Reason this function is being called. */ , LPVOID reserved /* Not used. */ ) { g_hInst = hInst; return TRUE; } DLLIMPORT BOOL InstallHook() { if(g_hMouseHook != NULL) return TRUE; g_hTastaturHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInst, 0); if(g_hTastaturHook == NULL) return FALSE; return TRUE; } DLLIMPORT BOOL UninstallHook() { if(g_hTastaturHook != NULL) { UnhookWindowsHookEx(g_hTastaturHook); g_hMouseHook = NULL; } return TRUE; } LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode < 0) return CallNextHookEx(g_hTastaturHook, nCode, wParam, lParam); if(nCode == VK_TAB) // wenn tab gedrückt { HWND caller = FindWindow("Anwendung", NULL); if(caller != NULL) PostMessage(caller, 8888, 0,0); } return CallNextHookEx(g_hTastaturHook, nCode, wParam, lParam); }Leider kommt der Hook beim drücken des Tabulators nicht an. Ist mit der
ePostMessage(caller, 8888, 0,0);etwas falsch ? ich habe auch probleme die Dll zu debuggen aber rein syntaktisch müste es doch stimmen, wenn ich in meiner Anwendung die Nachricht mit der Callback Methode abfange oder ???
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; HWND caller ; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); if(message==8888) MessageBox(NULL,"Tabulator gedrueckt","Fehler",MB_OK); ....wer kann mir helfen ?
-
Da fehlt ein 'break;' vor:
if(message==8888) MessageBox(NULL,"Tabulator gedrueckt","Fehler",MB_OK);So würde er nur bei if(message==888... ankommen, wenn message = WM_COMMAND wäre...irg-wie Schwachsinn oder
.
-
Immer diese Profis, die mein Password ausspionieren wollen nd dann solche Fehler machen.
-
Och... schrieb:
Immer diese Profis, die mein Password ausspionieren wollen nd dann solche Fehler machen.
Man kann Hooks ja auch für andere Dinge verwenden...@OP: Hoffe mal das tuts du auch
.