Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[c++] symulacja wciskania klawiszy

30 Sty 2011 16:52 2378 3
  • Poziom 2  
    Mam taki oto kod:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Program ma symulowac wciskanie klawiszy 678, i za pomoca ppm aktywowac/deaktywowac program. Wszystko jest ok wlaczanie i wylaczanie dziala lecz w pentli for jest problem. Program potrzebny jest do gry w ktorej za pomoca recznego wcisniecia klawiszy 678 aktywuje pewna akcje w grze. Ten program dziala lecz nie uruchamia funkcji, program umie pisac 678 lecz nie wykonuje akcji, nie dziala poprostu jak fizyczne wcisniecie 678. Co trzeba zmienic zeby program dzialal tak jakbym wcisnal 678 recznie, wszystko jest niby w porzadku gra widzi program poniewaz program umie pisac na czacie (chat -miejsce do rozmowy miedzy graczami) w grze lecz nie wykonuje swojego dzialania.
    Gdy na klawiaturze nacisne klawisze 776867867867867867867 odbywa sie pewna akcja. Program niby tez "wciska" te klawisze ale akcja nie jest wykonywana.
    Co trzeba zmienic w pentli for ?[/code]
  • Poziom 25  
    A o jakiej konkretnie akcji piszesz? O jaką grę chodzi?

    Jeśli chodzi o same sposoby symulacji to jest ich kilka. Myślę że dobrze zrobisz przeszukując to forum bo wiele razy ten temat widziałem. Na pewno znajdziesz różne sposoby symulowania klawiszy.
  • Poziom 2  
    Tylko problem jest w tym ze w programowaniu dobry nie jestem ;/
    Jaka to gra hmm to chyba nieważne.
    Należy wprowadzić virtual key'e chyba do pętli for, tak gdzieś wyczytałem.
    Program już prawie działa jest tylko problem ze nie wykonuje akcji ale gra widzi program wiec kwestia w tym jak symulować ręczne wciskanie 678 programem ;)
    co do akcji : chodziło mi o akcje w grze, gdy nacisnę 67867867867867876 w grze odbywa się pewna czynność, programu potrzebuje dlatego ze jest to dosyć uciążliwe na dłuższa metę.
  • Poziom 1  
    keybd_event potrzebuje do poprawnego przesłania informacji nie kodu ASCII - jaki jest w kodzie programu, ale kodu wciśniętego klawisza, a takową informację zwraca VkKeyScan('6')

    Tak więc poprawne wywołanie keyb_event powinno wyglądać:
    keybd_event(VkKeyScan('6'), 0, 0, 0);
    keybd_event(VkKeyScan('6'), 0, KEYEVENTF_KEYUP, 0);