아두이노로 해보니 재밌어서 오토핫키로도 구현해보았다.
오토핫키는 hello world만 해보고 써본 적이 없어서 제대로 동작하는 매크로를 구현해보려니 쉽게 동작하지 않았다. 아래 두 가지 점을 신경써서 구현하면 성능 좋은 매크로를 구현할 수 있다.
1. 정확히 동시에 두 개 이상의 키를 눌러주기 위해서 Send 대신에 SendInput 을 써야한다.
2. 커맨드 사이 딜레이를 주기 위해 Sleep 을 쓰면 정확도가 매우 떨어진다. 정확한 딜레이를 구현해둔 코드가 있어서 참고했다( https://bit.ly/3cyI8GX ). 아래 코드의 1-13번 라인에 해당한다. 해당 라인을 넣고, Sleep 대신 DllCall 을 쓴다.
아래는 샘플코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#NoEnv | |
#MaxHotkeysPerInterval 99000000 | |
#HotkeyInterval 99000000 | |
#KeyHistory 0 | |
ListLines Off | |
Process, Priority, , H | |
SetBatchLines, -1 | |
SetKeyDelay, -1, -1 | |
SetMouseDelay, -1 | |
SetDefaultMouseSpeed, 0 | |
SetWinDelay, -1 | |
SetControlDelay, -1 | |
SendMode Input | |
one_frame := 1000/60.0 | |
;테스트용 Ctrl+j 누르면 매크로 동작 | |
^j:: | |
;3+RP | |
SendInput, {Right down}{Down down}{s down} | |
DllCall("Sleep","UInt",one_frame) | |
SendInput, {Right up}{Down up}{s up} | |
DllCall("Sleep","UInt",one_frame) | |
DllCall("Sleep","UInt",one_frame*43.8) | |
;6 | |
SendInput, {Right down} | |
DllCall("Sleep","UInt",one_frame) | |
SendInput, {Right up} | |
DllCall("Sleep","UInt",one_frame) | |
;3+RP | |
SendInput, {Right down}{Down down}{s down} | |
DllCall("Sleep","UInt",one_frame) | |
SendInput, {Down up}{Right up}{s up} | |
DllCall("Sleep","UInt",one_frame) | |
return |
게임할 때 쓰다가 스팀 밴 당하면 사용자 책임.
'매크로 조이스틱 제작 강좌 1102 1' 카테고리의 다른 글
아두이노를 이용한 철권 매크로 제작 0. 기원초 테스트 (4) | 2020.03.04 |
---|---|
(본분 참조)매크로 조이스틱 제작 강좌는 멈춥니다 (0) | 2011.02.18 |
매크로 조이스틱 제작 강좌 12. PICKIT2 Programmer 설치와 세팅 (0) | 2011.01.25 |
당분간 강좌 잠시 멈춤 합니다. (0) | 2011.01.15 |
매크로 조이스틱 제작 강좌 11. 부품 실장, 전선 연결 (0) | 2011.01.14 |
매크로 조이스틱 제작 강좌 10. 매크로 프로그램 만들기 (3) | 2011.01.13 |
매크로 조이스틱 제작 강좌 9. 매크로 회로 패턴도 (0) | 2011.01.11 |
매크로 조이스틱 제작 강좌 8. 매크로 회로도 (0) | 2011.01.10 |