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 |