[오토핫키] 비활성 매크로 만들기 1탄 비활성클릭+비활성입력

2024. 9. 11. 03:32오토핫키 중급

오토핫키를 이용해서 비활성 창을 클릭하고 명령을 보내 비활성를 유지하면서 창을 원하는대로 컨트롤 할 수 있습니다.

 

우선 비활성 클릭부터 시작하여 비활성 명령에 관하여 설명하고 이 내용을 직접 테스트 해볼 수 있는 간단한 프로그램까지 스트립트까지 제공해 드리겠습니다.

 

아래의 내용을 활용하면 오토핫키를 이용한 비활성 매크로를 스스로 제작 할 수 있습니다.

 

 

오토핫키 비활성 매크로

 

오토핫키를 이용한 비활성 클릭

오토핫키(AutoHotkey)로 비활성 상태인 창 안의 특정 좌표를 클릭하려면 ControlClick 명령어를 사용하면 됩니다. 이 명령어는 창을 활성화하지 않고도 특정 좌표를 클릭할 수 있도록 도와줍니다. 아래에 설명과 예시 스크립트를 제공하겠습니다.

설명

ControlClick 명령어는 다음과 같은 형식으로 사용됩니다:

 

ControlClick, [Control], WinTitle, WinText, Button, ClickCount, Options, ExcludeTitle, ExcludeText

 

  • Control: 클릭할 컨트롤의 이름입니다. 특정 컨트롤을 지정하지 않으면 전체 창을 대상으로 합니다.
  • WinTitle: 대상 창의 제목입니다.
  • WinText: 창 내부의 텍스트입니다.
  • Button: 클릭할 마우스 버튼 ("Left", "Right", "Middle")입니다.
  • ClickCount: 클릭 횟수입니다.
  • Options: 클릭 좌표를 지정할 수 있는 옵션입니다. xN yN 형식으로 사용합니다.
  • ExcludeTitle: 제외할 창의 제목입니다.
  • ExcludeText: 제외할 창의 텍스트입니다.

예시 스크립트 1

 

아래는 비활성 상태의 메모장 창에서 특정 좌표를 클릭하는 예시 스크립트입니다.

 

; 메모장(Notepad) 창에서 특정 좌표를 클릭하는 예시
SetTitleMatchMode, 2  ; 창 제목의 일부분만으로도 매칭되도록 설정

; 비활성 상태의 메모장 창에서 (100, 200) 좌표를 클릭
ControlClick, x100 y200, Untitled - Notepad,, Left, 1

; 위 예시에서 "Untitled - Notepad"는 메모장 창의 제목입니다.
; "x100 y200"은 클릭할 좌표입니다.

 

위 스크립트는 "Untitled - Notepad"라는 제목을 가진 비활성 상태의 메모장 창에서 (100, 200) 좌표를 클릭합니다. 창 제목은 실제 환경에 맞추어 변경해야 합니다.

이 스크립트를 사용하여 원하는 창과 좌표에 맞게 조정하면 비활성 상태의 창을 클릭할 수 있습니다.

 

예시 스크립트 2 (비활성 클릭 테스트 프로그램)

 

사용자가 GUI 창을 통해 비활성 창의 특정 좌표를 클릭하는 것을 테스트할 수 있도록 오토핫키 스크립트를 작성할 수 있습니다. 이 스크립트는 사용자에게 클릭할 창의 제목과 좌표를 입력받아 ControlClick 명령어를 실행합니다.

아래는 그런 기능을 제공하는 예시 스크립트입니다:

 

; GUI를 통해 비활성 창의 특정 좌표를 클릭하는 스크립트

; GUI 생성
Gui, Add, Text,, 창 제목:
Gui, Add, Edit, vWinTitle
Gui, Add, Text,, X 좌표:
Gui, Add, Edit, vXCoord
Gui, Add, Text,, Y 좌표:
Gui, Add, Edit, vYCoord
Gui, Add, Button, gSubmit, 클릭 실행
Gui, Show,, 비활성 창 클릭 테스트

Return

Submit:
    ; 입력된 값 가져오기
    Gui, Submit, NoHide
    ; ControlClick 실행
    ControlClick, x%XCoord% y%YCoord%, %WinTitle%,, Left, 1
    MsgBox, %WinTitle% 창의 (%XCoord%, %YCoord%) 좌표를 클릭했습니다.
Return

GuiClose:
    ExitApp

 

사용 방법

  1. 위 스크립트를 오토핫키 스크립트 파일(.ahk)로 저장합니다.
  2. 스크립트를 실행하면 GUI 창이 나타납니다.
  3. 클릭할 창의 제목을 "창 제목" 입력란에 입력합니다.
  4. 클릭할 좌표를 "X 좌표"와 "Y 좌표" 입력란에 입력합니다.
  5. "클릭 실행" 버튼을 클릭하면 지정한 좌표가 클릭됩니다.

이 스크립트를 통해 사용자는 간단한 GUI를 통해 비활성 창의 특정 좌표를 클릭할 수 있으며, 다양한 창과 좌표를 쉽게 테스트할 수 있습니다.

 

예시 스크립트 3 (비활성 클릭, 비활성 명령 테스트 프로그램)

 

오토핫키(AutoHotkey)로 비활성 상태의 창에 클릭뿐만 아니라 명령을 보낼 수 있도록 하려면 ControlSend 명령어를 사용할 수 있습니다. ControlSend는 창을 활성화하지 않고도 특정 컨트롤이나 전체 창에 키 입력을 보낼 수 있게 해줍니다.

아래는 사용자가 GUI를 통해 비활성 창에 클릭과 키 입력 명령을 보낼 수 있는 스크립트 예시입니다:

 

; GUI를 통해 비활성 창에 클릭 및 명령을 보내는 스크립트

; GUI 생성
Gui, Add, Text,, 창 제목:
Gui, Add, Edit, vWinTitle
Gui, Add, Text,, X 좌표:
Gui, Add, Edit, vXCoord
Gui, Add, Text,, Y 좌표:
Gui, Add, Edit, vYCoord
Gui, Add, Text,, 보낼 명령(키 입력):
Gui, Add, Edit, vCommand
Gui, Add, Button, gClick, 클릭 실행
Gui, Add, Button, gSendCommand, 명령 실행
Gui, Add, Button, gClickAndSend, 클릭 및 명령 실행
Gui, Show,, 비활성 창 명령 테스트

Return

Click:
    ; 입력된 값 가져오기
    Gui, Submit, NoHide
    
    ; ControlClick 실행
    ControlClick, x%XCoord% y%YCoord%, %WinTitle%,, Left, 1
Return

SendCommand:
    ; 입력된 값 가져오기
    Gui, Submit, NoHide
    
    ; ControlSend 실행
    if (Command != "")
    {
        ControlSend,, %Command%, %WinTitle%
    }
Return

ClickAndSend:
    ; 입력된 값 가져오기
    Gui, Submit, NoHide
    
    ; ControlClick 실행
    ControlClick, x%XCoord% y%YCoord%, %WinTitle%,, Left, 1
    
    ; ControlSend 실행
    if (Command != "")
    {
        ControlSend,, %Command%, %WinTitle%
    }
Return

GuiClose:
    ExitApp

 

사용 방법

  1. 위 스크립트를 오토핫키 스크립트 파일(.ahk)로 저장합니다.
  2. 스크립트를 실행하면 GUI 창이 나타납니다.
  3. 클릭할 창의 제목을 "창 제목" 입력란에 입력합니다.
  4. 클릭할 좌표를 "X 좌표"와 "Y 좌표" 입력란에 입력합니다.
  5. 보낼 명령(키 입력)을 "보낼 명령(키 입력)" 입력란에 입력합니다. 예를 들어 "Hello" 또는 "{Enter}"와 같은 키 입력을 사용할 수 있습니다.
  6. 버튼을 클릭하면 입력한 내용대로 비활성 창에 전달됩니다.

이 스크립트를 통해 사용자는 비활성 상태의 창에 클릭과 키 입력을 모두 테스트할 수 있습니다.

 

 

 

검은망치 카카오톡 오픈프로필: https://open.kakao.com/o/sDUaoCNg

 

[오토핫키] 검은망치님의 오픈프로필

오토핫키 개발러

open.kakao.com