RTFM! Przecież AutoHotKey ma dołaczony *.chm z opisem poleceń. Dawno już byś sam pokombinował i poczytał to byś zrobił co trzeba, a nie z każdym pytaniem lecisz na forum. Nie do tego ono służy. Poza tym jak widzisz AutoHotKey ma przecież własne forum supportu. I nie umiem skutecznie przeanalizować źródła AutoHotKeya, bo słabo znam C++ aby stwierdzić z jakich funkcji API korzysta przy wykonywaniu swojego send
, ale często jest tak, że gry DirectX'owe nie reagują w ogóle na symulacje wciskania oraz zwalniania klawiszy funkcjami Keybd_Event
lub nawet SendInput
. I tyle. Według mnie wtedy niewiele z tym zrobisz. Można było by jeszcze spróbować zainjectować dllkę w proces gry i spróbowac odczytać jakie komunikaty odbiera okno gry przy naciskaniu klawiszy i spróbować późneij wysłać takie same. Ale tego już pod AutoHotKeyem nie zrobisz, bo trzeba by napisać w czym dllkę oraz jakiś jej injector. A z Twoim podejściem w stylu "pytaj o wszystko, sam nie rób nic" słabo to widzę niestety. Poza tym injekcja w działający proces może się po prostu nie udać albo gra może się wywalić, bo wykryje taką technikę albo po prostu nie wysyła takich komunikatów, itp.
EDIT: sprawdziłem dla GTA IV, bo tylko taką mam na dysku i tam SendInput
wysyłany z naciskanym i "puszczanym" Enterem działa, czyli podejrzewam że i w "San Andreas" też zadziałają i to inne klawisze. No to teraz jeżeli nie powiedzie się Tobie z AutoHotKeyem, to pozostaje Tobie sobie ściągnąc jakiś kompilator i napisać program, który w wątku / timerze będzie robił to co chcesz. Od siebie mogę polecić z łatwych języków na start oczywiście obiektowy Pascal. Dlatego albo skorzystasz z krążącej po sieci wersji Delphi 7 Personal albo z Lazarusa albo możesz też pisać na szybko konsolową aplikację w FPC lub oczywiście w WinAPI jak je zgłębisz. Wszystkie wymienione środowiska są darmowe. A Lazarus również do zastosowań komercyjnych. Posiadają dokumentację. A i na sieci jest też mnóśtwo kursów i tutoriali dotyczących tego języka. A na MSDNie jak i w ogóle w googlach powinieneś znaleźć bez problemów przykłady użycia funkcji SendInput
. Trzeba tylko usiąść, poszukać i pokombinowac SAMODZIELNIE, a program na pewno stworzysz bez problemów. Powodzenia.
EDIT 2: żeby nie wprowadzać w błąd i sprecyzować, cytuje za MSDN'em i opisem funkcji keybd_event
:
Note This function has been superseded. Use SendInput instead.
I teraz wszystko powinno być "jaśniejsze".