매크로

조회 수 128 추천 0 댓글 0
#Singleinstance Force
#Include Gdip.ahk
#Include Gdip_ImageSearch.ahk
SetBatchLines, -1
SetWorkingDir, %A_WorkingDir%

;=========================================================함수선언===============================================================

Gdip_ImageSearchWithHwnd(Hwnd,Byref X,Byref Y,Image,Variation=0,Trans="",sX = 0,sY = 0,eX = 0,eY = 0)
{
SysGet, wFrame, 7
SysGet, wCaption, 4
gdipToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromHwnd(Hwnd)
bmpNeedle := Gdip_CreateBitmapFromFile(Image)
if( sX!= 0 || sY!= 0 || eX!= 0 || eY != 0)
{
sX := sX + wFrame
sY := sY + wCaption + wFrame
eX := eX + wFrame
eY := eY + wCaption + wFrame
}
RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,sX,sY,eX,eY,Variation,Trans,1,1)
Gdip_DisposeImage(bmpHaystack)
Gdip_DisposeImage(bmpNeedle)
Gdip_Shutdown(gdipToken)
StringSplit, LISTArray, LIST, `,
X := LISTArray1 - wFrame
Y := LISTArray2 - wCaption - wFrame

;msgbox, %bmpHaystack%||%bmpNeedle%||%RET%
;GuiControl,,로그, %bmpHaystack%||%bmpNeedle%||%RET%
if(RET = 1)
{
return true
}
else
{
return false
}
}

;이미지 찾을때까지 대기
WaitImage(ByRef clickX, ByRef clickY, ImageName, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
Loop
{
if(IsImagePlus(clickX, clickY, ImageName, errorRange, trans, sX, sY, eX, eY))
{
break
}
Sleep, 500
}
Sleep, 200
    Return
}

;이미지 찾을때까지 대기후 클릭
WaitImageclick(ByRef clickX, ByRef clickY, ImageName, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
Loop
{
if(IsImagePlus(clickX, clickY, ImageName, errorRange, trans, sX, sY, eX, eY))
{
click(clickX, clickY)
break
}
Sleep, 500
}
Sleep, 200
    Return
}

;이미지찾기
IsImagePlus(ByRef clickX, ByRef clickY, ImageName, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
WinGet, Title , ID, BlueStacks App Player
if(Gdip_ImageSearchWithHwnd(Title, clickX, clickY, ImageName, errorRange, trans, sX, sY, eX, eY))
{
return true
}
else
return false
}

;이미지찾은 후 클릭
IsImagePlusclick(ByRef clickX, ByRef clickY, ImageName, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
WinGet, Title , ID, BlueStacks App Player
if(Gdip_ImageSearchWithHwnd(Title, clickX, clickY, ImageName, errorRange, trans, sX, sY, eX, eY))
{
click(clickX, clickY)
return true
}
else
return false
}



;클릭
;클릭
Click(x, y)
{
sleep, %TIME_REFRESH%
Coor := x | y<<16
WinGet, ActiveID, ID, BlueStacks App Player
if(x = 0 && y = 0)
{
return false
}
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 0, %Coor%,, ahk_id %ActiveID%
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID%
{
sleep, %TIME_REFRESH%
Coor := x | y<<16
WinGet, ActiveID, ID, BlueStacks App Player
if(x = 0 && y = 0)
{
return false
}
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 0, %Coor%,, ahk_id %ActiveID%
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID%
sleep, %TIME_REFRESH%
}
else if getkeystate("Ctrl" , "p")
{
Loop
{
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 0, %Coor%,, ahk_id %ActiveID%
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID%
sleep, %TIME_REFRESH%
break
}
sleep, 100
}
}
}
sleep, %TIME_REFRESH%
}
else if getkeystate("Ctrl" , "p")
{
Loop
{
if not getkeystate("Ctrl" , "p")
{
PostMessage, 0x201, 0, %Coor%,, ahk_id %ActiveID%
PostMessage, 0x202, 0, %Coor%,, ahk_id %ActiveID%
sleep, %TIME_REFRESH%
break
}
sleep, 100
}
}
}


$F2::
MsgBox, 공지창 찾기시작
Loop
{
if (isimageplus(ClickX, ClickY, "image\공지닫기.bmp", 60, 0))
{
MsgBox, 공지창 찾음
click(518, 470)
break
}
else
{
Sleep, 1000
}
}
return



F2키 누르면 공지 이미지를 찾고 좌표를 클릭하고 싶은데 클릭을 못하네요;;;


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 PushBullet 스마트폰에서 보낸 채팅내용 PC에서 가져오... 1 Atoka 2016.07.28 0/0
질문 로그 질문드립니다. 1 PlusK 2016.07.20 0/0
질문 안녕하세요~ 도움이 필요합니다 ㅠ 3 노력은옳아 2016.07.19 0/0
질문 메모장 첫줄 복사했다 지우고 1 이성진po 2016.07.18 0/0
질문 gdip을 이용하여 범위 비활성서치법 5 러비 2016.07.17 0/0
질문 Call to nonexistent function 질문드립니다 2 PlusK 2016.07.17 0/0
질문 고수님들께 질문드립니다.. 2 자냐앙 2016.07.17 0/0
질문 질문드립니다 8 PlusK 2016.07.16 0/0
질문 메이플 숫자 인식 질문! notes5 2016.07.14 0/0
질문 문자인식? 질문요 3 셋쇼마루 2016.07.13 0/0
질문 비활성클릭 함수호출이 2번이상안되네요 ㅠㅠ 3 zinco 2016.07.17 0/0
질문 인터넷익스플로러를 통한 매크로 작성중입니다 질문좀 ... 2 welchs 2016.07.13 0/0
자유 오토핫키 처음 입문하는 뉴비입니다 6 라니오스 2016.07.12 0/0
질문 postmessage 입력이 안되는데 2 모닝커피 2016.07.11 0/0
질문 도와주세요 고수님들.. 며칠을 검색하고 생각해봐도 해... 8 노력은옳아 2016.07.14 0/0
자유 GDIP 32비트만 이용가능 할 줄이야... 3 프리 2016.09.02 0/0
질문 Gui에서의 reload 3 bleuG 2016.07.13 0/0
질문 비활성 질문합니다 5 PlusK 2016.07.10 0/0
질문 Gdip 이미지 찾은 후 다른 좌표 클릭 안되요 총각미남 2016.07.09 0/0
질문 c# 에서 Autohotkey.dll 참조후 질문입니다. 2 leejno 2016.07.17 0/0
Board Pagination Prev 1 ... 112113114115116117118119120 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글