Tastatureingaben abfangen
-
Hi,
könnte mir jemand einen Tipp geben wie ich Tastatureingaben global abfangen kann?
Danke
McK
-
Suchfunktion benutzen,
FAQs gucken,
DAS finden!
-
Hi,
erstmal danke für den Link. Ich hab jetzt mal die hookdll.dll erstellt und lass sie im Hauptprogramm mit LoadLibrary laden. Wenn mich jetzt nicht alles täuscht muss ich jetzt die funktion SetupHook per GetProcAddress aufrufen oder?
Wo und wie muss das GetProcAddress jetzt genau hin?Mein Code sieht im Moment so aus:
#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HINSTANCE hLib = LoadLibrary("hookdll.dll"); if(hLib == NULL) { MessageBox(NULL,"Fehler: hookdll.dll konnte nicht geladen werden !","error", 0); return 0; } static TCHAR szAppName[] = TEXT ("Klassenname"); HWND hwnd; MSG msg; WNDCLASSEX wndclassex = {0}; wndclassex.cbSize = sizeof(WNDCLASSEX); wndclassex.style = CS_HREDRAW | CS_VREDRAW; wndclassex.lpfnWndProc = WndProc; wndclassex.cbClsExtra = 0; wndclassex.cbWndExtra = 0; wndclassex.hInstance = hInstance; wndclassex.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW); wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclassex.lpszMenuName = NULL; wndclassex.lpszClassName = szAppName; wndclassex.hIconSm = wndclassex.hIcon; if (!RegisterClassEx (&wndclassex)) { MessageBox (NULL, TEXT ("RegisterClassEx fehlgeschlagen!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil szAppName, // Name der Fensterklasse TEXT ("Fenstertitel"), // Fenstertitel WS_OVERLAPPEDWINDOW, // Fensterstil CW_USEDEFAULT, // X-Position des Fensters CW_USEDEFAULT, // Y-Position des Fensters CW_USEDEFAULT, // Fensterbreite CW_USEDEFAULT, // Fensterhöhe NULL, // übergeordnetes Fenster NULL, // Menü hInstance, // Programm-Kopiezähler (Programm-ID) NULL); // zusätzliche Parameter ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } // Die Hauptnachrichtenschleife LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch (message) { case WM_CREATE: return (0); case WM_USER + 2: MessageBox(NULL, "ja", "ja", MB_OK); case WM_PAINT: hdc = BeginPaint (hwnd, &ps); TextOut (hdc, 0, 0, "hallo ", 5); EndPaint (hwnd, &ps); return (0); case WM_DESTROY: PostQuitMessage (0); return (0); } return DefWindowProc (hwnd, message, wParam, lParam); }
-
Da du das Handle deines Fensters brauchst würde sich wohl WM_CREATE anbieten

-
Hi flenders,
könntest du mir eventuell helfen das getProcAddress einzubauen? habs gestern die ganze nacht noch versuch bin aber auf keinen grünen zweig gekommen.
McK
-
Du könntest auch einfach den lib-File, der Hook-DLL mitlinken, dann sparst du dir das ganze mit LoadLibrary und GetProcAddress und kannst die Funktion direkt verwenden

Ansonsten hilft dir vielleicht das hier oder die Forensuche
