방개
비밀번호를 잊어버리셨나요?

질문

증감연산자질문입니다!

    • 글자 크기

 


#SingleInstance force
SetMouseDelay, -1
SetControlDelay, -1
SetBatchLines, -1
SetKeyDelay, -1
SetWinDelay, -1
#IfWinActive ahk_exe 외형수정


S::

{	
	CoordMode, mouse , screen
	mousegetpos,vx,vy 
	wingetpos,x,y,w,h, 외형 수정
	WinActivate 외형 수정
		if(wintitle = 외형 수정)
		{
			S++
			MouseClick, left, % x+110 , % y+40
			if( S=1 )
			{
				MouseClick, left, % x+50 , % y+100
			}
			if( S=2 )
			{		
				MouseClick, left, % x+180 , % y+100
			}	
			if( S=3 )
			{
				MouseClick, left, % x+180 , % y+200
			}	
			if( S=4 )
			{
				MouseClick, left, % x+50 , % y+200
			S=0
			}
		}
		MouseMove,vx,vy
return
}

저번에 질문도중에 S++ 증감연산자를 if문 안에 넣어야 중간에 안끈긴다고 했서 스트립을 이렇게 짯는데 

중간중간 초기화가안되서 버벅거리더라구요 1 2 3 4 순으로 갔다 다시 누르면 1 2 3 4 가 되어야하는데 1 3 4 1 2 3 4 이런식으로 하나 빼먹고

넘어갈때도있고 중간중간 넘어 가네요..S= 0 으로 초기화 하면 다시누르면 1부터 시작해야하는거 아닌가요  ,ㅠㅠㅠ 

 

 

그리고 #IfWinActive ahk_exe 외형 수정 에서만 사용하고 나머지 프로그램에서는 핫키가안먹게 사용하게 했는데

외형수정안의 특정창에서만 핫키가 사용안되게 할려면 #IfWinnotActive ahk_class로 지정해서 사용하면되나요?

안되는거같아서 . ..ㅠㅠ 다른방법이있을까요 ?

    • 글자 크기
댓글 1
  • 2020.11.13 21:06 댓글

    다시한번 말씀드리지만 마우스 관련 명령어 안의 X, Y 매개변수는 표현식이기 때문에 %를 쓰지 않으셔도 연산이 되고 그렇게 쓰는게 권장됩니다.

     

    한가지 드리고 싶은 말씀은 코드는 거짓말을 하지 않는 다는 것입니다. 적어도 실수투성이인 사람보다는 신뢰도가 높습니다.

    무슨 말이냐면, 코드가 잘못된 점이 없다면 무엇인가 착각하고 계실 가능성이 높단 뜻입니다.

     

    1. S변수를 다른 곳에서 사용하진 않나요?

    2. S변수의 값을 MsgBox로 확인한 것이 맞나요?

    3. 조건문은 잘 들어가는데 마우스 동작을 하지 않는건 아닌가요?

     

    등등... 코드가 맞다면 무언가 착각하고 있을 가능성이 높으니,

    다시한번 전체 코드를 살펴보셨으면 합니다.

댓글 달기

서버에 요청 중입니다. 잠시만 기다려 주십시오...