25 - [오토핫키] 비활성 ControlSend

    창 제목을 활용하여 지정한 창을 활성화 시키는 방법에 대해 다뤄봤죠. 이와 반대로 비활성이란? 창을 활성화 시키지 않은 채로 행동을 취하는것을 말합니다. 비활성의 가장큰 장점은 사용자의 마우스와 키보드에 간섭없이 행동을 취할수 있기 때문에 다중작업을 하기에 매우 유리합니다.

    그 중 ControlSend는 일반 Send와 흡사하고, 앞서 배운 WinTitle을 잘 이해했다면 매우 쉽게 다룰 수 있습니다.

     

     

    문법

    ControlSend [, Control, keys, WinTitle, WinText, ExcludeTitle, ExcludeText]

     

    설명

    Control

    ClassNN (콘트롤 클래스이름과 번호) "스파이"를 통해 알 수 있습니다. (생략가능)

    Keys

    여러가지 키를 전송합니다.

    WinTitle

    창의 제목이나 클래스 등 창을 나타내는 기준. 22 - [오토핫키] WinTitle 종류 참조

    WinText

    창의 텍스트 부분

    ExcludeTitle

    제외할 타이틀

    ExcludeText

    제외할 텍스트

     

     

     

    ClassNN은 "스파이"로 알 수 있습니다.

     

    Control Under Mouse Position:

     

    부분을 보면 ClassNN: 이라고 되어있는

     

    부분이 콘트롤 클래스 이름입니다.

     

    여기서는 "Internet Explorer_Server1"이

     

    콘트롤 클래스 겠네요.

     

    예제

    예제1)

    F1::

    ControlSend, Edit1, 메모장 입니다.

      , 제목 없음 - 메모장

    Return

    예제2)

    F1::

    Run, notepad.exe, , , OPID1

    Run, notepad.exe, , , OPID2

    sleep 500

    ControlSend, Edit1, 실행, ahk_pid %OPID1%

    ControlSend, Edit1, 실행, ahk_pid %OPID2%

    Return

     

    * 저는 포스팅의 레이아웃을 통일하기 위해 콘트롤 샌드를 두줄로 나눠 썼지만 한줄로 작성하기 바랍니다.

     

    예제1은 "제목 없음 - 메모장" 이라는 창의 "ClassNN: Edit1" 부분에 "메모장 입니다." 라는 글씨를 써주는 간단한 스크립트 입니다.

    예제2는 은근히 많은 분들이 하는 질문인데 각각의 창에 동시에 명령을 주고 싶을때는 이렇게 PID를 사용하거나 WinGet 명령어로 ID 값을 얻어서 사용하는게 일반적입니다.

     

     

     

     

     

    Posted by 옹봉이