입력되는 신호를 하드웨어 신호로 변경할 수 있는 Interception Driver 있습니다.
ClassDD와 동일한 기능이라고 보시면 될 것 같습니다.
GitHub - evilC/AutoHotInterception: An AutoHotkey wrapper for the Interception driver
위 사이트를 보니 제작 잘 되어 있네요.
히스토리 중 설치 관련 된 부분을 보자면
1. Interception Driver 설치
2. AutoHotInterception Folder 작업
위 2개 모두 설치 & 따라한 뒤 Release 버전에 존재하는 AHK v1 폴더에서 Monitor.ahk를 실행하면 아래와 같이 나타납니다.
여기에서는 현재 내 컴퓨터에 설치된 키보드 및 마우스 리스트가 노출되게 되는 거죠.
체크 후 키보드, 마우스를 누르면 ID번호를 확인하면 됩니다.
위 이미지를 봤을 때 ID = 3과 ID = 11입니다.
위 내용으로 Interception Driver 관련 설치 할 내용은 끝났습니다.
이제는 제가 직접 사용하는 방법을 알려 드리겠습니다. 물론 해당 사이트에도 잘 정리되어 있습니다.
아래 이미지는 제가 직접 하고 있는 이미지입니다.
저에게 설정된 드라이버를 다 선택 한 뒤 키보드 또는 마우스를 누르면 ID번호가 나옵니다.
저는 키보드 ID = 1 , 마우스 ID = 11이네요.
아래 내용이 모두 github 사이트에 다 정리되어 있지만 제가 사용하면서 작성한 내용입니다.
- 마우스 좌표 이동 (방법은 아래 코드 참조)
- SendMouseMove : 현재 마우스 위치에서 이동량
- (<mouseId>, <x>, <y>)
- SendMouseMoveAbsolute : 마우스 절대좌표로 "65535" 값이 화면 끝
- (<mouseId>, <x>, <y>)
- MoveCursor : 모니터에서 노출되는 좌표로 이동
- (<x>, <y> [, <coordMode>, <mouseId>])
- [ ]에 있는 것은 미입력 시 Default 값으로 적용됩니다.
- Coordmode Default = "Screen" , MouseID Default = 11입니다.
- (<x>, <y> [, <coordMode>, <mouseId>])
- SendMouseMove : 현재 마우스 위치에서 이동량
#include Lib\AutoHotInterception.ahk
global AHI := new AutoHotInterception()
;ahi.sendmousemove(11,100,100)
;AHI.SendMouseMoveAbsolute(11, 2000, 65535)
;AHI.MoveCursor(100, 100 ,"Window",11)
- 마우스 클릭
- SendMouseButtonEvent : 현재 마우스 좌표에서 클릭
- (<mouseId>, <button>, <state>)
- button의 경우 Monitor에 나왔던 Code 번호입니다. (좌 = 0 , 우 = 1)
- State의 경우 Monitor의 State 번호 입니다. (클릭 시작 = 1 , 클릭 때기 = 0)
- (<mouseId>, <button>, <state>)
- SendMouseButtonEventAbsolute : 65535를 기준으로 좌표 이동과 동시에 클릭
- (<mouseId>, <button>, <state>, <x>, <y>)
- mouseid ~ state는 위와 동일합니다.
- <x> , <y>는 65535까지 입력되는 절댓값입니다.
- (<mouseId>, <button>, <state>, <x>, <y>)
- SendMouseButtonEvent : 현재 마우스 좌표에서 클릭
#include Lib\AutoHotInterception.ahk
global AHI := new AutoHotInterception()
;AHI.SendMouseButtonEventAbsolute(11, 1 , 1, 100, 6000)
;AHI.SendMouseButtonEventAbsolute(11, 1 , 0, 100, 6000)
;AHI.SendMouseButtonEvent(11,1,1)
;AHI.SendMouseButtonEvent(11,1,0)
- 키보드 입력
- SendKeyEvent(<keyboardId>, <scanCode>, <state>) : 키보드 입력
- scancode = Monitor의 Code 번호를 사용 가능하며 , GetKeySC("a")와 같이 사용 가능합니다.
- state = Monitor의 값 그대로이며 , 마우스와 동일합니다.
- SendKeyEvent(<keyboardId>, <scanCode>, <state>) : 키보드 입력
#include Lib\AutoHotInterception.ahk
global AHI := new AutoHotInterception()
;ahi.SendKeyEvent(1, GetKeySC("f3"), 1)
;ahi.SendKeyEvent(1, GetKeySC("f3"), 0)
x::ExitApp
이걸 사용해서 로지텍의 마우스의 하드웨어 매크로처럼 사용가능하네요.
하지만 단점은 마우스 좌표가 지정한 위치까지 도착 유/무를 체크하기 때문에 오차가 발생하거나 했을 때 문제가 발생할 때가 있네요.
AutohotInterception을 이용한 콘텐츠를 한번 작성해 보겠습니다.
'컴퓨터 > 오토핫키' 카테고리의 다른 글
오토핫키 변수에 따른 시간 계산 결과값 (0) | 2023.06.05 |
---|---|
오토핫키 설정(변수)값을 파일로 저장하는 방법 (0) | 2023.05.25 |
Autohotkey에서 Progress Bar에 색상 넣기 (0) | 2023.05.02 |
AutoHotKey의 PixelGetColor와 PixelSearch에 대하여... (0) | 2023.04.24 |
AUTOHOTKEY를 활용한 캡쳐 내용 CLIPBOARD에 저장하기 (0) | 2023.04.04 |
댓글