다른 명령
새 문서: == AutoHotkey (AHK) 스크립트를 AutoIt으로 완전히 이식(변환) == AutoHotkey (AHK) 스크립트를 **AutoIt으로 완전히 이식(변환)**하는 것은 언어 문법 차이가 크기 때문에 단순 변환이 불가능한 경우도 많지만, 대부분의 핫키 매핑, 키보드/마우스 제어, GUI, MsgBox, Send 등은 충분히 AutoIt으로 변환 가능합니다. ⸻ ✅ 1. 기본 문법 비교 (핫키 중심) 기능 AHK 예시 AutoIt 등가 코드 키 매... |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
== AutoHotkey (AHK) 스크립트를 AutoIt으로 완전히 이식(변환) == | == AutoHotkey (AHK) 스크립트를 AutoIt으로 완전히 이식(변환) == | ||
AutoHotkey (AHK) 스크립트를 **AutoIt으로 완전히 이식(변환)**하는 것은 언어 문법 차이가 크기 때문에 단순 변환이 불가능한 경우도 많지만, | * AutoHotkey (AHK) 스크립트를 **AutoIt으로 완전히 이식(변환)**하는 것은 언어 문법 차이가 크기 때문에 단순 변환이 불가능한 경우도 많지만, | ||
대부분의 핫키 매핑, 키보드/마우스 제어, GUI, MsgBox, Send 등은 충분히 AutoIt으로 변환 가능합니다. | 대부분의 핫키 매핑, 키보드/마우스 제어, GUI, MsgBox, Send 등은 충분히 AutoIt으로 변환 가능합니다. | ||
=== 기본 문법 비교 (핫키 중심) === | |||
# 기능 AHK 예시 AutoIt 등가 코드 | |||
키 매핑 (예: CapsLock → F13) | |||
#:<source lang=autoit> | |||
CapsLock::F13 후킹 또는 HotKeySet("{CAPSLOCK}", ...) + _WinAPI_Keybd_Event() | |||
</source> | |||
# 메시지박스 | |||
#:<source lang=autoit> | |||
MsgBox, Hello MsgBox(0, "", "Hello") | |||
</source> | |||
# 키보드 입력 | |||
#:<source lang=autoit> | |||
Send, Hello Send("Hello") | |||
</source> | |||
# 키보드 단축키 핸들링 | |||
#:<source lang=autoit> | |||
^j::MsgBox, Ctrl+J pressed! HotKeySet("^j", "myFunc") | |||
</source> | |||
# 무한 루프 유지 | |||
#:<source lang=autoit> | |||
#Persistent While 1 ... WEnd | |||
</source> | |||
=== 변환 예제 === | |||
==== AHK 스크립트 (예제) ==== | |||
<source lang=autoit> | <source lang=autoit> | ||
| 30번째 줄: | 40번째 줄: | ||
==== AutoIt 변환 ==== | |||
<source lang=autoit> | <source lang=autoit> | ||
| 59번째 줄: | 67번째 줄: | ||
</source> | </source> | ||
==== AHK → AutoIt 변환 요령 ==== | |||
* AHK 문법 AutoIt 대응 전략 | |||
AHK 문법 AutoIt 대응 전략 | |||
<source lang=autoit> | <source lang=autoit> | ||
| 80번째 줄: | 83번째 줄: | ||
==== AutoHotkey에서 자주 쓰는 키코드 ==== | |||
* AHK와 AutoIt은 가상 키 코드를 동일하게 사용하므로 그대로 이식 가능: | |||
<source lang=autoit> | |||
AHK와 AutoIt은 가상 키 코드를 동일하게 사용하므로 그대로 이식 가능: | |||
키 이름 AHK / AutoIt 키코드 | 키 이름 AHK / AutoIt 키코드 | ||
F13 0x7C | F13 0x7C | ||
| 91번째 줄: | 91번째 줄: | ||
… … | … … | ||
</source> | |||
==== 이식 어려운 AHK 기능 ==== | |||
* AHK 기능 AutoIt 이식 난이도 대체 방법 | |||
# 표현식 내장 핫키 정의 어려움 함수 정의 + 핫키 매핑 필요 | |||
# GUI 속성의 유연한 바인딩 어려움 GUICtrlSet* 함수로 구현 가능 | |||
AHK 기능 AutoIt 이식 난이도 대체 방법 | # InputHook, ComObject 어려움 .NET DLL 또는 WinAPI 필요 | ||
표현식 내장 핫키 정의 어려움 함수 정의 + 핫키 매핑 필요 | # 저수준 후킹 + 리턴 처리 어려움 SetWindowsHookEx 직접 구현 | ||
GUI 속성의 유연한 바인딩 어려움 GUICtrlSet* 함수로 구현 가능 | |||
InputHook, ComObject 어려움 .NET DLL 또는 WinAPI 필요 | |||
저수준 후킹 + 리턴 처리 어려움 SetWindowsHookEx 직접 구현 | |||
==== 추천 변환 전략 ==== | |||
# 핫키나 간단한 매핑 → HotKeySet + _WinAPI_Keybd_Event | |||
# Send 입력 → Send() 또는 _WinAPI_Keybd_Event() | |||
# 루프 처리 → While True 루프 | |||
# 복잡한 GUI나 시스템 제어 → AutoIt 전용 라이브러리 활용 | |||
=== 관련 사항 === | |||
* AHK 스크립트 전체를 AutoIt으로 변환 (예제 보내주시면 됩니다) | |||
* AHK 기능을 AutoIt으로 구현한 함수 템플릿 모음 제공 | |||
* AutoIt GUI로 AHK 매핑을 조정할 수 있는 유틸리티 제작 | |||
[[category:autoit]] | [[category:autoit]] | ||
2025년 7월 22일 (화) 08:36 기준 최신판
AutoHotkey (AHK) 스크립트를 AutoIt으로 완전히 이식(변환)
- AutoHotkey (AHK) 스크립트를 **AutoIt으로 완전히 이식(변환)**하는 것은 언어 문법 차이가 크기 때문에 단순 변환이 불가능한 경우도 많지만,
대부분의 핫키 매핑, 키보드/마우스 제어, GUI, MsgBox, Send 등은 충분히 AutoIt으로 변환 가능합니다.
기본 문법 비교 (핫키 중심)
- 기능 AHK 예시 AutoIt 등가 코드
키 매핑 (예: CapsLock → F13)
CapsLock::F13 후킹 또는 HotKeySet("{CAPSLOCK}", ...) + _WinAPI_Keybd_Event()
- 메시지박스
MsgBox, Hello MsgBox(0, "", "Hello")
- 키보드 입력
Send, Hello Send("Hello")
- 키보드 단축키 핸들링
^j::MsgBox, Ctrl+J pressed! HotKeySet("^j", "myFunc")
- 무한 루프 유지
#Persistent While 1 ... WEnd
변환 예제
AHK 스크립트 (예제)
CapsLock::F13 ^j::MsgBox, Ctrl+J pressed! #Persistent
AutoIt 변환
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>
; CapsLock → F13
HotKeySet("{CAPSLOCK}", "_SendF13")
; Ctrl+J 단축키
HotKeySet("^j", "_CtrlJ")
While True
Sleep(100)
WEnd
Func _SendF13()
_WinAPI_Keybd_Event(0x7C, 0, 0, 0) ; Key Down (F13)
_WinAPI_Keybd_Event(0x7C, 0, 2, 0) ; Key Up
EndFunc
Func _CtrlJ()
MsgBox(0, "AHK → AutoIt", "Ctrl+J pressed!")
EndFunc
AHK → AutoIt 변환 요령
- AHK 문법 AutoIt 대응 전략
:: 형태 단축키 HotKeySet() 사용 + 함수 작성
Send, ... Send("...") 또는 _WinAPI_Keybd_Event()
MsgBox, ... MsgBox()
#Persistent While True ... WEnd
Loop For, While
SetTimer AdlibRegister() 또는 TimerDiff() 사용
WinActivate WinActivate()
MouseClick MouseClick()
AutoHotkey에서 자주 쓰는 키코드
- AHK와 AutoIt은 가상 키 코드를 동일하게 사용하므로 그대로 이식 가능:
키 이름 AHK / AutoIt 키코드 F13 0x7C F14 0x7D … …
이식 어려운 AHK 기능
- AHK 기능 AutoIt 이식 난이도 대체 방법
- 표현식 내장 핫키 정의 어려움 함수 정의 + 핫키 매핑 필요
- GUI 속성의 유연한 바인딩 어려움 GUICtrlSet* 함수로 구현 가능
- InputHook, ComObject 어려움 .NET DLL 또는 WinAPI 필요
- 저수준 후킹 + 리턴 처리 어려움 SetWindowsHookEx 직접 구현
추천 변환 전략
- 핫키나 간단한 매핑 → HotKeySet + _WinAPI_Keybd_Event
- Send 입력 → Send() 또는 _WinAPI_Keybd_Event()
- 루프 처리 → While True 루프
- 복잡한 GUI나 시스템 제어 → AutoIt 전용 라이브러리 활용
관련 사항
- AHK 스크립트 전체를 AutoIt으로 변환 (예제 보내주시면 됩니다)
- AHK 기능을 AutoIt으로 구현한 함수 템플릿 모음 제공
- AutoIt GUI로 AHK 매핑을 조정할 수 있는 유틸리티 제작