컴파일 후 '실행(F2)' 버튼 클릭 또는 F2 핫키 입력시 매크로가 동작하게 짜봤는데
이후에 '종료(F3)' 버튼 클릭하거나 F3 핫키 입력하면
GuiControl, , 상태, 정지 ; 이부분은 무조건 업데이트 되는데
GuiControl, enable, 실행(F2), ;이부분이 반응이 있을때도 있고 없을 때도 있습니다
gui 업데이트가 랜덤하게 이루어지니 무언가 코딩 오류가 있는거 같은데 어딘지 잘 모르겠습니다...
도와주세요
Gui, Add, Text, x22 y28 w120 h19 v상태, 실행
Gui, Add, Button, x22 y48 w57 h30, 실행(F2)
Gui, Add, Button, x95 y48 w57 h30, 종료(F3)
Gui, Show, x0 y0 w180 h120, 연습용
F2::
Button실행(F2):
{
매크로 := true
while ( 매크로 = true )
{
GuiControl, , 상태, 실행 중 ;프로그램 상태를 나타내는 텍스트 표시
GuiControl, disable, 실행(F2),
Gui,Submit,nohide
}
}
return
F3::
Button종료(F3):
{
매크로 := false
GuiControl, , 상태, 정지 ;프로그램 상태를 나타내는 텍스트 표시
GuiControl, enable, 실행(F2),
Gui,Submit,nohide
}
return
F4::
ExitApp
return
While문은 특정 조건일때 포함하고있는 내용을 계속해서 반복하는 반복문입니다.
일단 실험해본 결과, F2 누르면 버튼이 disable되고 f3을 누르면 한번 매크록닶이 False되고 다시 누르면 enable이 되고 있더군요.
While문을 if문으로 바꾸니까 제대로 잘 작동하더군요.
아마 While문이 실행되고 있는중에 F3을 눌러 버튼을 enable시키지만 여전히 While문으로서 버튼을 disable시키고 있어서 이 과정에서 매크로를 False값을 설정시키지만 여전히 While문에서는 매크로를 Ture한걸 마지막으로 읽어와서 버튼을 disable 시킨것 같습니다.
뭐 결론을 While문은 반복문이니까 if문으로 바꾸면 잘 됩니다.