소프트웨어 (AHK) '버튼 활성화되면 클릭하기' 좀 도와주세요
2022.10.02 15:08
안녕하세요
버튼이 활성화되면 클릭하려고 하는데, ClassNN이 다른 컴퓨터에서 달라지는 경우가 있네요.
이런 경우 다 작동되게 하는 방법이 있을까요?
버튼의 글자는 프로그램 실행시에
Enlish를 선택하면 'Auto Dial' 이고, 한국어를 선택하면 '자동 방송'입니다.
위치가 달라져서 좌표는 사용할 수 없습니다.
ClassNN은 BUTTON.app.0.73673b_r7_ad18 입니다.
(어떤 컴퓨터에서는 0.73673b_r7 이 부분이 0.ea119_r9로 바뀌는 경우가 있어서 실행이 안됩니다)
sleep 1000
while !(EnDis = 1)
ControlGet, EnDis, Enabled,, BUTTON.app.0.73673b_r7_ad18, ahk_exe Plan.exe
sleep 1000
ControlClick, BUTTON.app.0.73673b_r7_ad18, ahk_exe Plan.exe ; '자동 방송' 클릭
댓글 [3]
-
ViArPl 2022.10.02 20:54
-
지후빠 2022.10.03 00:34
둘 다 변하면... 컨트롤 순서는 일정할테니 winget으로 컨트롤 목록을 얻어서
지정된 위치(순서)의 컨트롤 이름을 얻어낼 수 있습니다.
만약 4번째 이면... (샘플이 없어서 그냥 상상만으로 적어봅니다.)
잘 안되시면 해당 프로그램 또는 샘플을 주시면 해보겠습니다.
WinGet, cList, ControlList, ahk_exe Plan.exe
Loop, Parse, cList, `n
if A_Index = 4
ButtonClassNN := A_LoopField
sleep 1000
while !(EnDis = 1)
ControlGet, EnDis, Enabled,, %ButtonClassNN%, ahk_exe Plan.exe
sleep 1000
ControlClick, %ButtonClassNN%, ahk_exe Plan.exe ; '자동 방송' 클릭
만약 해당 컨트롤에 키보드 포커스를 둘 수 있으면 ControlGetFocus 를 사용해 볼 수도 있을 것 같습니다.
-
UU自適 2022.10.03 15:41
지후빠님, 감사합니다^^
설명대로 하니, 다른 컴퓨터에서도 아주 잘 클릭되는 것을 확인했습니다.
https://www.autohotkey.com/docs/commands/ControlClick.htm
ClassNN 대신 버튼 텍스트를 사용하시면 될 것 같습니다.