⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만,
새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.
50. 컨트롤 내용 변경 ControlSetText
마지막 수정일: 2023-12-22
마지막으로, 컨트롤의 내용(Text)을 변경할 때 쓸 수 있는 유용한 함수인 ControlSetText
를 배워보겠습니다.
창과 컨트롤은 Text를 가질 수 있다고 했죠?
그 중 컨트롤의 Text를 바꿀 땐 ControlSetText
를 사용합니다.
ControlSetText
ControlSetText(NewText, Control [, WinTitle, WinText, ExcludeTitle, ExcludeText])
ControlSend 함수의 원형
매개변수
- NewText: 바꿀 텍스트
- Control: 키 입력 신호를 보낼 컨트롤
- WinTitle: 키 입력 신호를 보낼 창의 Title 혹은 기타 식별자
- WinText: 키 입력 신호를 보낼 창의 전체 혹은 일부 Text
- ExcludeTitle: 이 곳에 적은 문자열이 포함된 Title을 가진 창은 제외하고 지정
- ExcludeText: 이 곳에 적은 문자열이 포함된 Text를 가진 창은 제외하고 지정
이제 감이 잡히시죠? 'Control' 매개변수부터 'ExcludeText' 매개변수 까지는 사실상 어느 창의 어느 컨트롤을 대상으로 지정하는지를 결정해줍니다. 결국 특정된 컨트롤의 Text를 'NewText' 매개변수에 쓰인 내용으로 바꿔주는 것이죠.
1. NewText
컨트롤에 들어갈 새 내용입니다.
2. Control, WinTitle, WinText, ExcludeTitle, ExcludeText
내용을 바꿀 컨트롤을 지정해줍니다. 기존에 Control 계열 함수에서 쓰던 것과 동일하니 설명은 생략하겠습니다.
실습
1. 에디트 컨트롤의 내용 바꾸기
48강과 49강 실습에서 사용한 실습용 프로그램을 그대로 사용합니다.
사진 1. 내용을 바꿀 에디트 컨트롤에디트 컨트롤의 내용을 바꿔보겠습니다. Window Spy로 창과 컨트롤의 정보를 보면 제목은 'Test Program', 컨트롤의 ClassNN은 'Edit1'임을 알 수 있습니다. 이를 이용하여 아래와 같이 ClassNN과 WinTitle을 지정해서 그 내용을 바꿀 수 있습니다.
1 ControlSetText("Changed!", "Edit1", "Test Program")
사용법이 쉬으므로 실습 예제는 한 개만으로 충분하겠군요.
이렇게 ControlSetText
는 컨트롤의 내용을 바꾸는데 유용합니다.
ControlSend
를 이용하여 새 내용을 '전송'하는 것보다는 훨씬 안정적입니다.
따라서, 컨트롤의 내용을 바꿀 땐 ControlSend
로 일일이 입력 신호를 전송하는 대신 ControlSetText
를 사용하는 것이 권장됩니다.