메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Autoit 에서 autohotkey 호출 하는 방법

데브카페

autoit 에서 autohotkey 호출 하는 방법

좋은 질문입니다. AutoIt과 **AutoHotkey(AHK)**는 서로 다른 스크립트 언어지만, AutoIt에서 AutoHotkey 스크립트를 실행하거나 제어하는 것은 가능합니다.

✅ 가능한 방식 요약

방식 설명 1. AHK 스크립트를 실행 Run() 함수로 .ahk 또는 .exe 실행 2. AHK 명령 직접 작성 후 실행 AutoIt에서 AHK 스크립트 문자열 생성 + 임시 파일로 저장 후 실행 3. AHK DLL 호출 (고급) AHK_H 버전 DLL을 AutoIt에서 직접 호출 (복잡함, 실전용 아님)


여기서는 AutoIt에서 AutoHotkey 스크립트를 동적으로 만들어 실행하는 간단한 예제를 소개하겠습니다.

✅ 예제 1: AutoIt에서 AHK 스크립트를 생성 후 실행

🔹 목표

AutoIt으로 버튼을 누르면 AutoHotkey가 실행되어 Hello from AutoHotkey! 메시지를 띄움.

🔧 AutoIt 코드

임시 AHK 파일 경로

Local $sAhkPath = @ScriptDir & "\temp_ahk_script.ahk"

AHK 스크립트 내용

Local $sAhkCode = _ '#Persistent' & @CRLF & _ 'MsgBox, Hello from AutoHotkey!' & @CRLF & _ 'ExitApp'

스크립트 파일 생성

FileWrite($sAhkPath, $sAhkCode)

AHK 스크립트 실행

Run('AutoHotkey.exe "' & $sAhkPath & '"')

필요 시 삭제하려면 Sleep 후 FileDelete


🔹 요구 사항 • 시스템에 AutoHotkey.exe가 설치되어 있어야 함 • AutoIt 스크립트와 동일 폴더에 AutoHotkey.exe가 있어도 됨 (경로 지정 가능)

예:

Run('"C:\Program Files\AutoHotkey\AutoHotkey.exe" "' & $sAhkPath & '"')


✅ 예제 2: 키 매핑 (AutoHotkey 기능을 AutoIt에서 실행)

🔹 AHK 코드 (동적으로 작성됨)

CapsLock::F13

🔧 AutoIt 코드

Local $sAhkMapPath = @ScriptDir & "\keymap.ahk" Local $sMapCode = "CapsLock::F13"

FileWrite($sAhkMapPath, $sMapCode) Run('AutoHotkey.exe "' & $sAhkMapPath & '"')


✅ 예제 3: AutoIt에서 버튼 UI로 AHK 컨트롤

GUICreate("AHK Trigger", 200, 100) $btn = GUICtrlCreateButton("Run AHK", 50, 30, 100, 30) GUISetState()

While True

   Switch GUIGetMsg()
       Case -3 ; GUI_CLOSE
           Exit
       Case $btn
           _RunAHKScript('MsgBox, Hello from AHK button!')
   EndSwitch

WEnd

Func _RunAHKScript($sCode)

   Local $sFile = @ScriptDir & "\temp_btn.ahk"
   FileDelete($sFile)
   FileWrite($sFile, "#Persistent" & @CRLF & $sCode & @CRLF & "ExitApp")
   Run("AutoHotkey.exe """ & $sFile & """")

EndFunc


✅ AutoHotkey 스크립트를 .exe로 컴파일해서 사용하는 방법도 가능 • .ahk → .exe로 변환한 다음, AutoIt에서 그냥 Run()으로 실행하면 끝. • AHK 스크립트 배포시 AHK 설치 필요 없음.

✅ 정리

목적 방법 AutoIt에서 AHK 스크립트 실행 Run()으로 .ahk 실행 코드 직접 생성 후 실행 FileWrite()로 생성 후 Run() UI 연동 GUI 버튼 + 동적 AHK 실행 AHK 설치 없이 실행 .ahk → .exe로 컴파일 후 실행


Comments