Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Symulowanie naciśnięcia klawisza


Arturzt29

Rekomendowane odpowiedzi

Opublikowano

Witam, chciałbym napisać bota do c++ do gry internetowej, która ma podobno bardzo dobre przed tego typu programami zabezpieczenia. Szukałem dużo w internecie i nie wiem czy lepsze byłoby SendInput, keybd event, czy SendMessage lub jeszcze coś innego, nie wiem czym one się różnią i która z nich jest najmniej wykrywalna. Proszę o dobrą odpowiedź, nagradzam hojnie.

Opublikowano

keybd_event już trochę jest przestarzały więc jego używanie raczej jest bez sensu. Na dodatek w przypadku keybd_event okno będzie musiało być ciągle na wierzchu. SendMessage pozwala wysyłać wciśnięcia klawiszy nawet do zminimalizowanych okien. Jednak jak sam wspomniałeś program ten ma zabezpieczenia więc pewnie ta opcja nie przejdzie bo jest bardzo często i łatwo blokowana.

SendInput to w zasadzie nowsza wersja keybd_event więc jeśli już chcesz korzystać to użyj tej (w tym wypadku okno też będzie musiało być na wierzchu).

 

Nie wiem na ile zaawansowana jest twoja znajomość C++ ale sądząc po akcjach które chcesz wykonać radzę zainteresować się AutoIT. Będzie prościej i szybciej bo używanie C++ do symulowania myszki/klawiszy mija się trochę z celem.

void_bit.jpg

Weteran
Opublikowano

SendMessage, jeśli masz w aplikacji jakąś konkretną kontrolkę i chcesz do niej wysłać komunikat. W grach zazwyczaj nie ma kontrolek, więc odpada.

//w zasadzie za pomocą tej funkcji można również wysłać komunikat typu WM_CHAR do głównego okna gry

PostMessage, jeśli chcesz wysłać komunikat do pętli komunikatów danej aplikacji. Nie musimy mieć uchwytu na kontrolkę, więc w grach raczej powinno działać.

SendInput/keybd_event działa na takiej samej zasadzie, jakbyś normalnie wciskał klawisze. Raczej działa w przypadku każdego programu.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...