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

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Jak już wspomniałem przerabiam prosty program z gui do tworzenia macro z AutoIt na C++. Z tego pierwszego jednak zostawiłem funkcję Send do symulacji wciśnięć klawiszy. Macro polega na jednostajnym wciskaniu danego klawisza, kiedy jakiś inny jest wciśnięty. Do sprawdzania stanu klawisza używam funkcji GetAsyncKeyState (w AutoIt była to _IsPressed) i tak jak tam mam problem z shiftem. Mianowicie często już po puszczeniu go macro nadal symuluje wciśnięcia klawiszy <_<. Dodam, że z innymi klawiszami jest w porządku.

 

Prócz tego nie jestem zbytnio zadowolony z szybkości działania tego macro. Kiedy używałem SendInput z C++ zamiast Send, śmigało kilkukrotnie szybciej i to ze Sleep(3) (z tym, że SendInput nie współpracuje z moją grą). W tej chwili podobne macro napisane całkowicie w AutoIt działa szybciej (chociaż tam użyłem funkcji takich jak Opt("SendKeyDelay", 0) i Opt("SendKeyDownDelay", 0), a nie wiem czy/jak wstawić je do C++).

 

Ostatnia rzecz to rzutowanie - gdy np zamiast "a" napiszę "ab" wyskakują mi jakieś chińskie znaczki :). Pozdrawiam!

 

Main:

 

To jest ukryta treść, proszę

Edytowane przez m4tius
Opublikowano

Nie używaj GetAsyncKeyState.

 

Nie możesz tak cast'ować char na widechar'a. Musisz użyć specjalnych funkcji. Chociażby WinApi'owskiego MultiByteToWideChar.

Ta sygnatura jest pusta.

×
×
  • Dodaj nową pozycję...