Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;*****************************************
- ;Emulator ADB.au3 by LtnhanSt94
- ;Created with ISN AutoIt Studio v. 1.08
- ;*****************************************
- #include-once
- #include <Array.au3>
- #include <GDIPlus.au3>
- #include <WinAPI.au3>
- #include <Color.au3>
- OnAutoItExitRegister("_Emulator_Exit")
- Global $__Emulator_Emulator
- Global $__Emulator_ADBDRIVE = ["A","B","C", "D", "E", "F", "G", "H"]
- GLobal $__Emulator_ADBPATH
- If ProcessExists("Nox.exe") Then
- $__Emulator_Emulator = "Nox"
- For $iDrive in $__Emulator_ADBDRIVE
- If FileExists(StringFormat("%s:\Program Files%s\Nox\bin", $iDrive, "")) Then
- $__Emulator_ADBPATH = StringFormat("%s:\Program Files%s\Nox\bin", $iDrive, "")
- ExitLoop
- EndIf
- If FileExists(StringFormat("%s:\Program Files%s\Nox\bin", $iDrive, " (x86)")) Then
- $__Emulator_ADBPATH = StringFormat("%s:\Program Files%s\Nox\bin", $iDrive, " (x86)")
- ExitLoop
- EndIf
- Next
- If $__Emulator_ADBPATH = "" or not FileExists($__Emulator_ADBPATH) Then
- While 1
- $__Emulator_ADBPATH = FileSelectFolder("Đường dẫn đến thư mục Nox đã cài đặt", "C:\Program Files")
- If @error Then Exit
- If FileExists($__Emulator_ADBPATH & "\bin") Then
- $__Emulator_ADBPATH &= "\bin"
- ExitLoop
- EndIf
- WEnd
- EndIf
- ElseIf ProcessExists("MEmu.exe") Then
- $__Emulator_Emulator = "MEmu"
- Global $__Emulator_MEmuHypervPATH = ""
- For $iDrive in $__Emulator_ADBDRIVE
- If FileExists(StringFormat("%s:\Program Files%s\Microvirt\MEmuHyperv", $iDrive, "")) Then
- $__Emulator_MEmuHypervPATH = StringFormat("%s:\Program Files%s\Microvirt\MEmuHyperv", $iDrive, "")
- ExitLoop
- EndIf
- If FileExists(StringFormat("%s:\Program Files%s\Microvirt\MEmuHyperv", $iDrive, " (x86)")) Then
- $__Emulator_MEmuHypervPATH = StringFormat("%s:\Program Files%s\Microvirt\MEmuHyperv", $iDrive, " (x86)")
- ExitLoop
- EndIf
- Next
- If $__Emulator_MEmuHypervPATH = "" or not FileExists($__Emulator_MEmuHypervPATH) Then
- While 1
- $__Emulator_MEmuHypervPATH = FileSelectFolder("Đường dẫn đến thư mục Microvirt đã cài đặt", "C:\Program Files")
- If @error Then Exit
- If FileExists($__Emulator_MEmuHypervPATH & "\MEmuHyperv") Then
- $__Emulator_MEmuHypervPATH &= "\MEmuHyperv"
- ExitLoop
- EndIf
- WEnd
- EndIf
- $__Emulator_ADBPATH = StringReplace($__Emulator_MEmuHypervPATH, "\MEmuHyperv", "\MEmu")
- Else
- MsgBox(262192,"Thông báo","Không có giả lập đang chạy." & @CRLF & "Hãy mở giả lập trước khi mở App!",0)
- Exit
- EndIf
- _GDIPlus_Startup()
- ; Example
- Global $ADB_LISTDEVICES = _Android_ListDevices()
- _ArrayDisplay($ADB_LISTDEVICES)
- _Android_ScreenCapture($ADB_LISTDEVICES[0], @ScriptDir & "\test.png", True)
- ConsoleWrite(_Android_ScreenPixel($ADB_LISTDEVICES[0], 1052, 226))
- _Android_Tap($ADB_LISTDEVICES[0], 1052, 226)
- Func _Android_ListDevices()
- Local $hDevices = __Run("adb devices")
- $hDevices = StringSplit($hDevices, @LF, 2)
- If @error or UBound($hDevices) <= 2 Then Return SetError(1 , 0, "")
- Local $hList[0]
- For $i = 1 to UBound($hDevices) - 2
- _ArrayAdd($hList, StringTrimRight($hDevices[$i], 7))
- Next
- Return $hList
- EndFunc
- Func _Android_Tap($device, $x, $y)
- _RunADB($device, "shell input tap " &$x& " " &$y)
- EndFunc
- Func _Android_Swipe($device, $x1, $y1, $x2, $y2, $Delay = 1500)
- _RunADB($device, "shell input swipe " & $x1 & " "& $y1 & " "& $x2 & " "& $y2 & " "& $Delay)
- EndFunc
- Func _Android_ScreenCapture($device, $hDir = "", $SaveImg = False)
- If $hDir == "" Then $hDir = @TempDir & "\" & StringReplace($device, ":", "_") & '.png'
- _RunADB($device, "shell screencap /sdcard/screen.png")
- _RunADB($device, 'pull /sdcard/screen.png "' & $hDir & '"')
- Local $Bitmap = _GDIPlus_BitmapCreateFromFile($hDir)
- _RunADB($device, "rm /sdcard/screen.png")
- If not $SaveImg Then FileDelete($hDir)
- Return $Bitmap
- EndFunc
- Func _Android_ImgHandlePixel($ImgHandle, $x, $y)
- Local $hPixel = _GDIPlus_BitmapGetPixel($ImgHandle, $x, $y)
- $hPixel = "0x" & Hex($hPixel, 6)
- Return $hPixel
- EndFunc
- Func _Android_ScreenPixel($device, $x, $y)
- Local $Bitmap = _Android_ScreenCapture($device)
- Local $hColor =_Android_ImgHandlePixel($Bitmap, $x, $y)
- _GDIPlus_BitmapDispose($Bitmap)
- Return $hColor
- EndFunc
- Func _RunADB($device, $command)
- Return __Run("adb -s " & $device & " " & $command)
- EndFunc
- Func __Run($sCommand, $PATH = $__Emulator_ADBPATH)
- Local $iPID, $sLine, $sOutput = ""
- $iPID = Run(@ComSpec & " /c " & $sCommand, $PATH, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
- While 1
- $sLine = StdoutRead($iPID)
- If @error Then ExitLoop
- $sOutput &= $sLine
- Sleep(1)
- WEnd
- ProcessWaitClose($iPID)
- Return StringStripCR(StringTrimRight($sOutput, StringLen(@CRLF)))
- EndFunc ;==>__Run
- Func _Emulator_Exit()
- _GDIPlus_Shutdown()
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement