- 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
결과 소스 파일 :
결과 실행 파일 : - 주의사항 : 아래 EXE 파일은 위 소스를 EXE로 변경하여 빠른 실행을 도와 주는 파일입니다. 인터넷에서 다운 받은 EXE의 경우 보안알림이 뜰 확률이 매우 높습니다. 관련 메세지가 불안하신 경우 위에 AU3 파일이나 아래 스크립트 소스를 이용해서 직접 빌드해서 사용하시면 됩니다.
'RPA 만들기 - 함수 사용법' 카테고리의 다른 글
[ Autoit ] Au3Info.exe 를 활용하여 외부 프로그램 정보 얻기 (0) | 2020.09.17 |
---|---|
[ Autoit ] Winmove를 이용하여 프로그램 위치 이동하기 #1 - 기본편 (0) | 2020.09.16 |
[ Autoit ] Excel 데이터 추출하여 다른 파일로 재저장 하기 #1 - 기본편 (0) | 2020.09.13 |
[ Autoit ] 특정 폴더 파일리스트 구해오기#2 - 응용편 (0) | 2020.09.11 |
[ Autoit ] 특정 폴더 파일리스트 구해오기#1 - 기본편 (0) | 2020.09.10 |