'전체 글'에 해당되는 글 17건

  1. 2021.03.16 VB.NET 이미지서치 ImageSearchDLL.dll 1
2021. 3. 16. 20:28

ImageSearchDLL.dll
0.11MB

 

VB.NET 이미지서치 ImageSearchDLL.dll

 

API

- FindWindow

- FindWindowEx

- SendMessage

- PostMessage

- ImageSearch

- GetWindowRect

- ScreenToClient

- GetWindowRect

 

    Private Function LparamToScreenPositionXY(ByVal X As Long, ByVal Y As Long) As Int32
        LparamToScreenPositionXY = (Y And &HFFFF&) * &H10000 Or (X And &HFFFF&) 
        ' 좌표를 합친 롱 값을 만든다. 마우스 클릭 메시지 보낼때 필요한 좌표 정보를 만든다.
    End Function
    
        Dim rc As RECT
    <StructLayout(LayoutKind.Sequential)>
    Public Structure RECT
        Public left As Integer
        Public top As Integer
        Public right As Integer
        Public bottom As Integer
    End Structure
    
    Private Const WM_LBUTTONDOWN As Int32 = &H201
    Private Const WM_LBUTTONUP As Int32 = &H202

        Dim img As String = ImageSearch(rc.left, rc.top, rc.right, rc.bottom, "*TransFF00FF *50 " & Application.StartupPath & "\" & img & ".png")
        '투명값 : *TransFF00FF 
        '오차율 : *50
        'Application.StartupPath : 응용 프로그램의 실행 경로
        
        Dim imgData() As String = Split(Marshal.PtrToStringAnsi(img), "|")
        '이미지 서치 결과값  0번 =  결과 성공1 실패0 1,2번 = x,y 3,4번 = 이미지의 세로가로길이
        '참고 링크 https://blog.naver.com/134686/220944621041

        Dim client As String = FindWindow(ClassName, WindowName)
        Dim clientEX As String = FindWindowEx(client, 0&, ClassName, WindowName)
        ' FindWindow FindWindowEX 사용법
        ' https://writes.tistory.com/entry/VBNET-FindWindow-FindWindowEX-API 참고
        
        Dim p As Point
        GetWindowRect(client, rc)
        'GetWindowRect(clientEX, rc)

        If imgData(0) = 1 Then
            p.X = imgData(1)
            p.Y = imgData(2)
            '좌표값

            ScreenToClient(client, p)
            'ScreenToClient(clientEX, p)

            SendMessage(client, WM_LBUTTONDOWN, &H1, LparamToScreenPositionXY(p.X, p.Y))
            SendMessage(client, WM_LBUTTONUP, &H0, LparamToScreenPositionXY(p.X, p.Y))
            'PostMessage
        End If

 

'VB.NET' 카테고리의 다른 글

VB.NET WinHttp.WinHttpRequest  (3) 2021.03.31
VB.NET FindWindow, FindWindowEX API  (0) 2021.03.15
alert 없애기  (0) 2020.07.11
웹연동 소스  (0) 2020.07.11
유틸리티 Microsoft Spy++ V10.0 다운로드  (0) 2019.11.04
유틸리티 API뷰어(Winapi) 다운로드  (0) 2019.11.03
vb.net SendInput  (0) 2019.08.28
웹연동  (0) 2019.08.26
참조 추가 Management  (0) 2019.08.20
핸들값  (0) 2019.08.12
Posted by 블로그(8109)