Warum Funkt das nicht ... ?
-
#include <windows.h> HWND hWindow; HHOOK hhkHook ; HINSTANCE hDllInstance; LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardHookProc (int nCode, WPARAM wParam, LPARAM lParam){ if (nCode < 0) return CallNextHookEx (hhkHook, nCode, wParam, lParam); keybd_event('W',NULL,NULL,NULL); keybd_event('W',NULL,KEYEVENTF_KEYUP,NULL); return CallNextHookEx (hhkHook, nCode, wParam, lParam); } BOOL __declspec (dllexport)__stdcall InstallHook(HWND hParent) { hWindow = hParent ; hhkHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardHookProc, hDllInstance, NULL) ; return TRUE; } BOOL __declspec (dllexport)__stdcall CALLBACK UninstallHook( ) { UnhookWindowsHookEx (hhkHook) ; return TRUE ; } BOOL __stdcall CALLBACK Main( ) { do { InstallHook(FindWindowA(0,"Metin/warrock/. oder ein andres game wo bei 32 bit geblockt ist....")); Sleep(50); UninstallHook(); Sleep(900); }while(true); return TRUE; } BOOL WINAPI DllMain( HMODULE hDll , DWORD dwReason, LPVOID lpReserved ) { if( dwReason == DLL_PROCESS_ATTACH ) { hDllInstance = hDll; CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Main, NULL, NULL, NULL); } return TRUE; }
Irgent wie Funkt das nicht nirgents wo wird w gedrückt ...
-
1. Was heisst "funkt nicht"?
2. CreateThread(..) in DllMain(..) bringt spezielles Verhalten!
3. Der Cast beim CreateThread(..) zeigt, dass die Signatur der Thread Funktion FALSCH ist. Korrigiere sie![EDIT]
Hier noch die Doku zur Thread Funktions Signatur: http://msdn.microsoft.com/en-us/library/aa964928.aspx[EDIT2]
Ausserdem: Ruf nicht FindWindowA(..) auf, sondern FindWindow(..). Nicht alle *A Funktionen funktionieren bei Uicode Characterset und umgekehrt! Stell, falls nötig, das Characterset um!
-
hat leider auch nichts gebracht selbes Problem immer noch
-
MausKlaus schrieb:
hat leider auch nichts gebracht selbes Problem immer noch
Welches denn ist?
-
Ja es tut sich nix , "w" wird nicht gedrückt
-
Ja, und wird KeyboardHookProc(..) ausgeführt?
-
nach meinem wissen ja
-
MausKlaus schrieb:
nach meinem wissen ja
Und woher glaubst Du das zu Wissen? Ich schlage vor Du tust das debuggen oder tracen. Benutze z.B. OutputDebugString(..) und DbgView.exe von Sysinternals.
-
SOrry ich bin kein C++ Profi
ich kapier das alles noch nicht so ganz
Bin grad dabei es zu lernen weils doch spaß macht aber musnoch viel lernen
-
aber wenn du gerade lernst dann solltest du sicher nicht mit solchen themen anfangen wie nen WindowsHook.
-
Man benötigt keinen Hok im keybd_event auszulösen! keybd_event ist systemweit.
-
Aber das Program das ich mache Block es für 32 bit
deswegen der Hook
-
Jemand eine Ide was ich falsch mache
-
Liest Du was man schreibt?
Martin Richter schrieb:
Man benötigt keinen Hok im keybd_event auszulösen! keybd_event ist systemweit.
-
Naja... mit UIPI mag das nicht mehr so funktionieren, wie man sich das vorstellt...
Siehe:
http://msdn.microsoft.com/en-us/library/bb756960Siehe auch hier:
http://www.mombu.com/microsoft/windows-sdk-security-api/t-how-to-proper-use-sendinput-to-a-elevated-window-from-a-service-761212.html
-
Hallo MausKlaus,
So wie ich Dein Kode verstanden habe, möchtest Du in ein anderen Process über ein Fenster reinhacken. Der Hook funktioniert aber so nicht, er ist nicht dafür konstruiert.