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

질문

이번엔 LOOP 도중 특정조건일시 중단하기 질문드립니다.ㅠ

    • 글자 크기

안녕하세요.

어제 헬퍼님의 도움으로 루프까지는 배웠는데요..

 

이제 루프를 도중 중단해야하는 상황인데,, 어떻게 풀어나가야 할지 모르겠습니다.

 

운영자료

1.엑셀 데이터

2.이미지 200개 (group2,group3,group4...group200) 

 

제가 하고자 하는것은

 

엑셀파일의 자료가 나열 되어 있는데, 그 나열된 자료를 순차적으로 복사하여

이미지 group2,group3,group4...group200 에 붙여넣기 하는 것입니다.

근데 이 엑셀의 자료가 190개있을때도 있고 180개 일때도 있고,,

랜덤입니다.

 

고정된 자료 수가 아니기 때문에 loop,200 이런식으로 못쓰는데

 

본 질문 2가지 입니다.

 

 A. 엑셀에 자료가 모두 입력된 후 자료가 없다는 것을 오토핫키에 어떻게

    전달해야 할지 모르겠습니다.

  -특정 자리에 END라든지 고유단어나 숫자를 적어두어도 이걸 오토하키에

   어찌 전달시켜 마무리를 지을찌요.

 

 B. 엑셀에 자료를 모두 입력했을 때 LOOP를 중단하고 빠져 나오는 방법

   -break를 쓰는것 같은데, A를 해결하지 못해 ..시도를 못해봤습니다.

 

내용이 길었는데,, 아래는 현재 사용 하고 있는 LOOP 식 입니다.

지도 부탁드립니다. 

긴글 읽어주셔서 감사합니다. 

 

 

loop,200
{
  
; imagePath 선언
imagePath := "작성중\group" . A_Index+1 . ".png"
    ; ImageSearch
    ImageSearch, x, y, 0, 0, A_ScreenWidth, A_ScreenHeight, % imagePath
    
    ; 이미지를 찾았다면
    if (!ErrorLevel)
    {
        ; 좌표 연산
        x += 90, y += 10
        
        ; x, y 좌표 클릭
        MouseMove, x, y

        ; 500ms 대기
        Sleep, 500
        
        mousegetpos,xx,yy
        yy:=yy+40                ; 00번째의 상품기획 할인명 입력칸 클릭
        Click, %xx%, %yy%
        Sleep, 500
        
        WinActivate, ahk_class XLMAIN
        Sleep, 500

        send {Left}
        Sleep, 500

        send, ^{down}
        Sleep, 500

        send ^c
        Sleep, 500
        
        WinActivate, ahk_exe chrome.exe
        Sleep, 500

        send ^v
        Sleep, 500
        
        send {Tab}
        Sleep, 500

        send {2 1}
        send {0 1}
        Sleep, 500

        send {Tab}
        Sleep, 500

        send {0 1}
        Sleep, 500
        
        send {Tab}
        Sleep, 500

        send ^v
        Sleep, 500

        send {Tab 6}
        Sleep, 500
        
        send {Enter}
        Sleep, 1000
        
        MouseGetPos ,x1,x2
        Sleep, 500
        
        MouseClick, Left, 1676, 958, 10
        Sleep, 500
        
        Mousemove, %x1%,%x2%
        Sleep, 500        
        
        ImageSearch, pX, pY, 0, 0, A_ScreenWidth, A_ScreenHeight, 작성중/systemcode.png
        
        xx := pX + 90
        yy := pY + 90
        Click, %xx%, %yy%
        Sleep, 500
        
        WinActivate, ahk_class XLMAIN
        Sleep, 500

        send {right}
        Sleep, 500

        send, ^+{down}
        Sleep, 500

        send ^c
        Sleep, 500

        WinActivate, ahk_exe chrome.exe
        Sleep, 500
        
        send ^v
        Sleep, 500

        MouseClickDrag, L, 736, 870, 736, 900
        Sleep, 500

        MouseClick, Left, 1676, 958, 10
        Sleep, 500

        MouseClick, Left, 469, 946, 1
        Sleep, 500

        send {Tab}
        Sleep, 500
        
        send {space}
        Sleep, 1000

        MouseClick, Left, 816, 546, 1
        Sleep, 500

        MouseClick, Left, 1310, 948, 1
        Sleep, 500
        
        ImageSearch, x, y, 0, 0, A_ScreenWidth, A_ScreenHeight, % imagePath
        
        ; 좌표 연산
        x += 90, y += 10
        
        ; x, y 좌표 클릭
        MouseClick, Left, x, y
        
        ; 500ms 대기
        Sleep, 3000

    }
}

 

    • 글자 크기
댓글 2
  • 2020.10.16 22:11 댓글

    엑셀 파일에 나열된 자료의 형태가 무엇인가요?

     

    엑셀 객체로 제어하는 방법도 있으니 확인해보세요.

     

    https://www.autohotkey.com/boards/viewtopic.php?t=63032

  • 오알못글쓴이
    2020.10.16 22:21 댓글

    아 헬퍼님 감사합니다.

     

    그냥 엑셀 숫자 데이터 입니다. 1개 파일의 시트에

    지정된 셀에 순서대로 30000/40000/50000/3000 등 이런 임의의 숫자를 복사하여 이미지 그림 위치에 붙여넣기 하고있습니다.

     

    엑셀 객체라는 말씀이 뭔지 이해는 안가지만 ㅎ 연구해보겠습니다! 감사합니다.

댓글 달기

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