Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GDIPlus.au3>
- #include <ScreenCapture.au3>
- Global $Title = WinGetTitle("7 Giây Để Chiến Thắng")
- Global $HWnD = WinGetHandle($Title)
- Global $cSize = WinGetClientSize($HWnD)
- Global $wSize = WinGetPos($HWnD)
- Global $borderSize = ($wSize[2] - $cSize[0]) / 2
- Global $captionSize = ($wSize[3] - $cSize[1]) - $borderSize
- Global $hBitmap
- _GDIPlus_Startup()
- WinActivate($HWnD)
- ControlClick($HWnD, "", "[NAME:batdau]")
- Sleep(500)
- _CaptureRegion($wSize[0] + $borderSize, $wSize[1] + $captionSize, $wSize[0] + $borderSize + $cSize[0], $wSize[1] + $captionSize + $cSize[1])
- $Plus1 = OCR(63, 94, 88, 108)
- $Plus2 = OCR(196, 94, 219, 108)
- $Minus1 = OCR(63, 141, 88, 155)
- $Minus2 = OCR(196, 141, 219, 155)
- $Mul1 = OCR(63, 188, 88, 202)
- $Mul2 = OCR(196, 188, 219, 202)
- $Div1 = OCR(63, 235, 88, 249)
- $Div2 = OCR(196, 235, 219, 249)
- ControlSetText("", "", "[CLASS:WindowsForms10.EDIT.app.0.378734a; INSTANCE:1]", $Plus1 + $Plus2)
- ControlSetText("", "", "[CLASS:WindowsForms10.EDIT.app.0.378734a; INSTANCE:4]", $Minus1 - $Minus2)
- ControlSetText("", "", "[CLASS:WindowsForms10.EDIT.app.0.378734a; INSTANCE:3]", $Mul1 * $Mul2)
- ControlSetText("", "", "[CLASS:WindowsForms10.EDIT.app.0.378734a; INSTANCE:2]", $Div1 / $Div2)
- Func OCR($a, $b, $c, $d)
- Local $Number = 0
- Local $pStart = False
- Local $pCount = 0
- For $i = $a To $c
- $pCheck = False
- For $j = $b To $d
- If _ColorCheckVariation(_PixelGetColor_GetPixel($i, $j), Hex(0x000000, 6), 100) Then
- $pStart = True
- $pCheck = True
- $pCount += 1
- EndIf
- Next
- If Not $pCheck And $pStart Then
- $Number = 10 * $Number + OCRReturn($pCount)
- $pStart = False
- $pCount = 0
- EndIf
- Next
- Return $Number
- EndFunc ;==>OCR
- Func OCRReturn($oCount)
- Switch $oCount
- Case 38
- Return 0
- Case 6
- Return 1
- Case 39
- Return 2
- Case 40
- Return 3
- Case 25
- Return 4
- Case 46
- Return 5
- Case 52
- Return 6
- Case 27
- Return 7
- Case 49
- Return 8
- Case 45
- Return 9
- EndSwitch
- EndFunc ;==>OCRReturn
- Func _CaptureRegion($iLeft, $iTop, $iRight, $iBottom)
- $hHBitmap = _ScreenCapture_Capture("", $iLeft, $iTop, $iRight, $iBottom)
- $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmap)
- EndFunc ;==>_CaptureRegion
- Func _PixelGetColor_GetPixel($iX, $iY)
- Local $aPixelColor = _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)
- Return Hex($aPixelColor, 6)
- EndFunc ;==>_PixelGetColor_GetPixel
- Func _ColorCheckVariation($nColor1, $nColor2, $sVari = 5)
- Local $Red1, $Red2, $Blue1, $Blue2, $Green1, $Green2
- $Red1 = Dec(StringMid(String($nColor1), 1, 2))
- $Blue1 = Dec(StringMid(String($nColor1), 3, 2))
- $Green1 = Dec(StringMid(String($nColor1), 5, 2))
- $Red2 = Dec(StringMid(String($nColor2), 1, 2))
- $Blue2 = Dec(StringMid(String($nColor2), 3, 2))
- $Green2 = Dec(StringMid(String($nColor2), 5, 2))
- If Abs($Blue1 - $Blue2) > $sVari Then Return False
- If Abs($Green1 - $Green2) > $sVari Then Return False
- If Abs($Red1 - $Red2) > $sVari Then Return False
- Return True
- EndFunc ;==>_ColorCheckVariation
Advertisement
Add Comment
Please, Sign In to add comment