AutoHotkey 스크립트 작성 방법

AutoHotkey는 환상적이지만 복잡한 소프트웨어입니다. 처음에는 사용자 지정 단축키를 다른 작업에 리 바인드하기위한 것이었지만 이제는 완전한 Windows 자동화 제품군입니다.

AHK는 일반적인 개념이 상당히 간단하기 때문에 신규 사용자에게 특히 어렵지 않지만 완전한 Turing-complete 프로그래밍 언어입니다. 프로그래밍 배경이 있거나 개념에 익숙하다면 구문을 훨씬 쉽게 익힐 수 있습니다.

AutoHotkey 설치 및 사용

AutoHotkey의 설치 과정은 간단합니다. 공식 웹 사이트에서 설치 프로그램을 다운로드하고 실행하십시오. "빠른 설치"를 선택하십시오. 소프트웨어를 설치 한 후 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 새로 만들기> AutoHotkey 스크립트를 선택하여 새 스크립트를 만들 수 있습니다.

AHK 스크립트는 .ahk 확장자 가있는 텍스트 파일입니다 . 마우스 오른쪽 버튼으로 클릭하면 몇 가지 옵션이 표시됩니다.

  • "Run Script"는 AHK 런타임과 함께 스크립트를로드합니다.
  • "Compile Script"는 실행 가능한 EXE 파일을 만들기 위해 AHK 실행 파일과 함께 번들로 제공됩니다.
  • "스크립트 편집"은 기본 텍스트 편집기에서 스크립트를 엽니 다. 메모장을 사용하여 AHK 스크립트를 작성할 수 있지만 구문 강조 및 디버깅을 지원하는 AHK 용 편집기 인 SciTE4AutoHotkey를 사용하는 것이 좋습니다.

스크립트가 실행되는 동안 (EXE이든 아니든) Windows 알림 영역 (시스템 트레이라고도 함)의 백그라운드에서 실행되는 것을 확인할 수 있습니다. "H"가있는 녹색 아이콘을 찾으십시오.

스크립트를 종료, 일시 중지, 다시로드 또는 편집하려면 알림 아이콘을 마우스 오른쪽 단추로 클릭하고 적절한 옵션을 선택합니다. 스크립트는 종료 할 때까지 백그라운드에서 계속 실행됩니다. 물론 Windows에서 로그 아웃하거나 PC를 재부팅 할 때도 사라집니다.

AutoHotkey는 어떻게 작동합니까?

핵심에서 AHK는 핫키에 작업을 바인딩하는 한 가지 작업을 수행합니다. 다양한 동작, 단축키 조합 및 제어 구조가 있지만 모든 스크립트는 동일한 원리로 작동합니다. 다음은 Windows + C를 누를 때마다 Chrome을 실행하는 기본 AHK 스크립트입니다.

#c :: Chrome return 실행

첫 번째 줄은 핫키를 정의합니다. 파운드 기호 (#)는 Windows 키의 약자이며 c 키보드의 C 키입니다. 그 다음에는 액션 블록의 시작을 나타내는 이중 콜론 (: :)이 있습니다.

다음 줄은 액션입니다. 이 경우 작업은 Run 명령을 사용 하여 응용 프로그램을 시작합니다 . 블록은 return 끝에로 완료됩니다 . 이전에 여러 작업을 수행 할 수 있습니다 return. 그들은 모두 순차적으로 발사됩니다.

이와 마찬가지로 간단한 키-투-액션 매핑을 정의했습니다. .ahk 파일에 원하는만큼 배치 하고 백그라운드에서 실행되도록 설정할 수 있으며, 항상 다시 매핑 할 핫키를 찾습니다.

단축키 및 수정 자

공식 문서에서 AHK 수정 자의 전체 목록을 찾을 수 있지만 가장 유용하고 멋진 기능에 초점을 맞출 것입니다.

수정 자 키에는 모두 단일 문자 속기가 있습니다. 예를 들어, # ! ^ +각각 Windows, Alt, Control 및 Shift입니다. <>수정자를 사용하여 왼쪽과 오른쪽 Alt, Control 및 Shift를 구분할 수도 있습니다 . 이렇게하면 추가 핫키를위한 많은 공간이 열립니다. 예를 들어 +는 오른쪽 Shift입니다. 참조 할 수있는 모든 항목에 대한 주요 목록을 살펴보십시오. (스포일러 : 거의 모든 키를 참조 할 수 있습니다. 작은 확장자로 키보드가 아닌 다른 입력 장치를 참조 할 수도 있습니다.)

원하는만큼의 키를 하나의 핫키로 결합 할 수 있지만 곧 기억해야 할 키 조합이 부족해질 것입니다. 이것은 당신이 미친 일을 할 수있게 해주는 수정자가 들어오는 곳입니다. AHK 문서에서 예제를 분해 해 보겠습니다.

녹색 #IfWinActive지시문 이라고하며  스크립트에서 물리적으로 그 아래에있는 핫키에 추가 컨텍스트를 적용합니다. 이후의 모든 핫키는 조건이 참인 경우에만 실행되며 하나의 지시어 아래에 여러 핫키를 그룹화 할 수 있습니다. 이 지시문은 다른 지시문을 누르기 전까지는 변경되지 않지만 공백으로 재설정 할 수 있습니다 #If(핵처럼 보이면 AHK에 오신 것을 환영합니다).

여기서 지시문은에 의해 정의 된 특정 창이 열려 있는지 확인하는 것 ahk_class Notepad입니다. AHK가 "Win + C"입력을 받으면 #IfWinActive 지시문이 true를 반환 한 경우에만 첫 번째 작업에서 작업을 실행하고 그렇지 않은 경우 두 번째 작업을 확인합니다. AHK에는 많은 지시문이 있으며 문서에서 모두 찾을 수 있습니다.

AutoHotkey는 또한 전체 텍스트 문자열을 대체하는 것을 제외하고는 핫키와 같은 기능을하는 핫 스트링을 가지고 있습니다. 이는 자동 수정이 작동하는 방식과 유사합니다. 실제로 AHK에 대한 자동 수정 스크립트가 있지만 모든 AHK 작업을 지원합니다.

핫 스트링은 정확히 입력 된 경우에만 문자열과 일치합니다. 이 동작은 조정할 수 있지만 일치하는 텍스트를 자동으로 제거하여 핫 스트링을 대체합니다.

행위

AHK의 작업은 운영 체제에 외부 영향을 미치는 모든 것입니다. AHK는 많은 행동을합니다. 모두 설명 할 수는 없으므로 유용한 정보를 골라 보겠습니다.

  • 텍스트이든 다양한 버튼 누름이든 입력을 보냅니다.
  • 마우스를 움직입니다. 사실 AHK는 비디오 게임용 치트 소프트웨어로 잘못 표시되는 경우가 있습니다. 사람들이 완전히 작동하는 aimbot을 만들었 기 때문입니다.
  • 현재 창을 기준으로 위치를 지정하여 마우스를 클릭합니다.
  • 양식 및 입력 필드가있는 대화 메뉴 표시.
  • 창 이동, 크기 조정, 열기 및 닫기.
  • 주악.
  • Windows 레지스트리에 쓰기. 네 진짜로 요.
  • 클립 보드의 내용 수정.
  • 파일 읽기 및 쓰기. 파일을 반복하고 각 행에서 작업을 실행할 수 있습니다. AHK는 .ahk 파일에 쓰고 자체 코드를 조정할 수도 있습니다.

이러한 작업의 대부분에는 이와 관련된 정보 지향 명령도 있습니다. 예를 들어 클립 보드에 쓸 수 있지만 클립 보드의 내용을 변수에 저장하고 클립 보드가 변경 될 때 함수를 실행할 수도 있습니다.

모든 것을 제어 구조로 묶기

AHK는 튜링을 완벽하게 만드는 모든 제어 구조가 없다면 그 자체가 아닐 것입니다.

#If지시문 외에도 If 액션 블록 내부에 액세스 할 수 있습니다. AHK에는 For 루프, 중괄호 블록 Try 및 Catch문 및 기타 여러 가지가 있습니다. 액션 블록 내에서 외부 데이터에 액세스하고 나중에 사용하기 위해 변수 또는 개체에 저장할 수 있습니다. 사용자 정의 함수 및 레이블을 정의 할 수 있습니다. 실제로 다른 프로그래밍 언어로 쉽게 할 수있는 모든 작업은 AHK에서 약간의 두통과 문서를 살펴보면 할 수 있습니다.

예를 들어, 여러 개의 버튼을 연속으로 클릭하고 서버가 응답 할 때까지 기다려야하는 지루하고 반복적 인 작업이 있다고 가정 해 보겠습니다. AHK를 사용하여이를 자동화 할 수 있습니다. 몇 개의 루프를 정의하여 마우스를 특정 위치로 이동하고 클릭 한 다음 다음 지점으로 이동하고 다시 클릭합니다. 깨지지 않도록 몇 개의 wait 문을 던집니다. 무슨 일이 일어나고 있는지 확인하기 위해 화면의 픽셀 색상을 읽을 수도 있습니다.

한 가지는 확실합니다. 스크립트가 예쁘지 않을 것입니다. 하지만 둘 다 AutoHotkey도 아니고 괜찮습니다.