제 블로그에서는 가끔씩 오토핫키에 대해서 소개를 하는데, Windows 운영 체제를 사용할 때 Autohotkey 사용 유무에 따라 생산성이 정말 많이 차이 난다고 생각 합니다.
그런데 오토핫키를 사용하면서 몇 가지 불편한 부분들이 있는데 기존에 제가 생각하던 Autohotkey 의 불편한 부분들은 다음과 같습니다.
1. 패키지 관리도구가 없다.
Python 의 PIP 와 같은 패키지 관리툴을 사용해 보신 분들은 아시겠지만, 패키지 관리툴 유무에 따라 개발 편의성이 굉장히 차이가 있습니다. Autohotkey 에서는 포럼이 있는데~ 해당 포럼에서 괜찮은 라이브러리들을 일일이 찾아보고 다운로드 받아서 사용해야 합니다. 이런 부분들은 다른 인기 있는 언어들에 비해 Autohotkey 가 불편하다고 생각합니다.
2. UI Automation 의 한계가 있다.
Autohotkey 를 사용하면 기존의 Win32 로 되어 있는 UI 들을 자동화 할 수가 있습니다. 그런데 최근에는 많은 프로그램들이 MS UI 로 만들어져 있어서, Autohotkey 로는 자동화의 한계가 느껴졌었습니다. 그래서 저는 UI Automation 를 할때는 Python 의 pywinauto 라이브러리를 사용해 왔습니다.
그런데 아래 유튜브를 보다가 Autohotkey 를 사용하여 UI Automation 을 할 수 있는 라이브러리가 있다는 것을 알게 되었습니다.
Autohotkey UIAutomation 라이브러리 포럼은 아래 주소와 같습니다. 아래 포럼을 들어가시면 샘플부터 자세한 설명들을 볼 수가 있습니다.
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=104999
Autohotkey UIAutomation 라이브러리 코드는 아래 주소에서 다운로드 할 수 있습니다.
https://github.com/Descolada/UIAutomation
위 github 주소에서 코드를 다운로드 받아 보시면 Examples 폴더에서 다양한 예제를 확인할 수 있습니다. 아래 코드는 Example3_Calculator.ahk 코드에 대해 약간 변경을 해서 만들어 본 한글 사용 PC 에서 돌아가는 샘플 코드입니다.
#NoEnv
#SingleInstance force
#Include ..\lib
#include UIA_Interface.ahk
Run, calc.exe
UIA := UIA_Interface() ; Initialize UIA interface
WinWaitActive, 계산기 ahk_class ApplicationFrameWindow
cEl := UIA.ElementFromHandle(WinExist("계산기 ahk_class ApplicationFrameWindow")) ; Get the element for the Calculator window
cEl.FindFirstBy("AutomationId=num9Button").Click() ; 9
cEl.FindFirstBy("AutomationId=plusButton").Click() ; +
cEl.FindFirstBy("AutomationId=num5Button").Click() ; 5
cEl.FindFirstBy("AutomationId=equalButton").Click() ; =
ExitApp
위 코드를 실행해보시면 아래 그림과 같이 계산기에서 9 + 5 = 14 라는 결과를 확인할 수 있습니다.
위 유튜브 동영상에서도 소개를 하지만 DumpAll() 함수를 사용하면 접근 가능한 sub-elements 을 모두 확인 할 수 있습니다.
저는 이번 UIAutomation 라이브러리를 통해 그 동안 제가 정말 답답해 했던 한 가지 부분이 해결된 것 같아서 너무 기분이 좋네요.
'programming language > Autohotkey' 카테고리의 다른 글
Visual Studio Code 에서 Autohotkey 코딩시 사용하는 Extension "AutoHotkey Plus" (149) | 2022.10.06 |
---|---|
UIAutomation inspect 툴 "Accessibility Insights for Windows" (458) | 2022.09.25 |
Autohotkey Rufaydium 을 사용한 브라우저 자동화 (425) | 2022.08.26 |
Autohotkey 수정된 날짜 순으로 파일리스트 정렬하는 방법 (288) | 2022.08.26 |
Autohotkey 를 사용한 대신증권 크레온 HTS 자동 로그인 (448) | 2021.11.08 |
Autohotkey 새로운 버전 체크/자동 다운로드 실행하기 (441) | 2021.08.30 |
괜찮은 Autohotkey 프로젝트들, Lintalist (444) | 2021.01.11 |
Autohotkey Pulover's Macro Creator 다시 업데이트 되는 중 OCR 기능 추가 (442) | 2020.10.26 |
댓글