• RPA 자동화를 위해 키 값을 입력하는데 활용하는 Send에 대하여 알아보겠습니다.
  • Autoit 편집기를 실행 후 [ File ] > [ New ] 하여 빈 문서를 생성하여 저장 후 [ F1 ] 키를 누르세요.
  •  도움말이 표시되면 좌측에 [ 내용 ] 항목 탭을 선택 후 Send를 선택합니다. 그럼 우측에 세부 내용이 표시됩니다.

 

  • 이번에도 역시 하단 Example 를 복제하여 편집기 빈 문서에 붙여 넣어 줍니다. 이제 한줄씩 동작에 대하여 알아보고자 합니다. 첫번째 줄인 Send("#r")  는 윈도우 + R 키를 의미 합니다. 윈도우 + R 키를 누르시면 "실행" 창이 표시 됩니다.

 

 

실행 화면 : 

 

두번째 줄인 WinWait("Run", "", 10) 는 실행 창이 표시되는 것을 기다리는 명령어 입니다. 최대 10초를 기다리는데 Help 명령어가 영문 OS에 맞춰져 있다보니 "Run" 타이틀 창을 10초간 기다립니다. 한국어 OS 기준으로 맞추시려면 WinWait("실행", "", 10)으로 바꾸면 됩니다.

 

 

 

그 다음 줄은  Send("notepad.exe{Enter}")  입니다. 실행 창에 노트패드 입력 후 엔터를 입력한다는 의미 입니다.  여기서 앞부분의 notepad.exe 는 글자를 그대로 입력합니다. notepad.exe는 메모장 실행파일을 의미 합니다. (손으로 직접 입력해서 확인해 보셔도 좋습니다. )

 

하지만 뒷부분에 { } 로 감싼내용은 키보드의 해당 키를 입력한 효과를 나타냅니다.

 

조금 응용하여 만약 ESC 키를 누른 효과를 주고 싶다면 {esc} 를 넣으면 됩니다. 

 

 

4번째 줄인  Local $hWnd = WinWait("[CLASS:Notepad]", "", 10) 는 메모장이 실행되는 것을 기다린다는 의미 입니다. 최대 10초간 메노장이 실행되는 것을 기다리게 됩니다. 이때는 타이틀이 아닌 CLASS 이름을 기준으로 대기 하고 있습니다.

 

 

메모장이 실행 되었다면     Send("Today's time/date is {F5}")  를 Send로 전송합니다. 앞의 Text는 고정이며 F5키는 메모장을 실행해서 확인해 보시면 현재 날짜와 시간이 자동으로 삽입 되는 것을 확인 할 수 있습니다.

 

 

6번째 줄은  WinClose($hWnd)  메모장을 종료하는 명령어 입니다. 강제 종료하는 방식은 아니며 종료 명령어를 호출 하는 방식이므로 닫을지 저장할지 묻는 창이 나타나게 됩니다. 

 

 

7번째 줄은   WinWaitActive("[CLASS:#32770]") 메모장을 닫을지 저장할지 묻는 창이 나타나길 기다리는 명령어 입니다. 

 

마지막 2줄은 0.5초 대기 후 탭 키를 누르고 엔터를 누르는 키입니다. 

    Sleep(500)
    Send("{TAB}{ENTER}")

해당 키를 입력하면 메모장은 저장하지 않고 종료 하게 됩니다.

 

Help Example Script 

Example()

Func Example()
    ; Simulate the key combination Win + R to open the Run dialogue window.
    Send("#r")

    ; Wait 10 seconds for the Run dialogue window to appear.
    WinWait("Run", "", 10)

    ; Simulate entering notepad.exe and pressing the 'ENTER' key.
    Send("notepad.exe{Enter}")

    ; Wait 10 seconds for the Notepad window to appear.
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)

    ; Simulate entering the following string and pressing the 'F5' key to input the date and time into edit control of Notepad.
    Send("Today's time/date is {F5}")

    ; Close the Notepad window using the handle returned by WinWait.
    WinClose($hWnd)

    ; Now a screen will pop up and ask to save the changes, the classname of the window is called
    ; "#32770" and simulating the "TAB" key to move to the second button in which the "ENTER" is simulated to not "save the file"
    WinWaitActive("[CLASS:#32770]")
    Sleep(500)
    Send("{TAB}{ENTER}")
EndFunc   ;==>Example

 

결과 소스 파일 :

Send_Example.au3
0.00MB

 

결과 실행 파일 : - 주의사항 : 아래 EXE 파일은 위 소스를 EXE로 변경하여 빠른 실행을 도와 주는 파일입니다.  인터넷에서 다운 받은 EXE의 경우 보안알림이 뜰 확률이 매우 높습니다. 관련 메세지가 불안하신 경우 위에 AU3 파일이나 아래 스크립트 소스를 이용해서 직접 빌드해서 사용하시면 됩니다. 

Send_Example.exe
0.95MB

 

+ Recent posts