python使用adb从连接到电脑的手机中截图

来源:赵克立 分类: Python 标签:AndroidPython发布时间:2016-12-24 21:36:53浏览:668
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2016-12-25 09:48:25

下面使用python写一个使用usb连接到电脑的手机中截图并保存到电脑上,

注意里面使用的adb,写的时候我在py脚本文件的目录放啦一个/adb/adb.exe文件,如果你的adb已经加入啦环境变量,可以把里面的路径改成对应的路径,

如果截图失败可以试着换个adb,从网上下载一个试试

# -*- coding:utf-8 -*-
import subprocess,os,sys,time
globalStartupInfo = subprocess.STARTUPINFO()
globalStartupInfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
def runCmd(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=os.getcwd(), shell=False, startupinfo=globalStartupInfo)
    p.wait()
    re=p.stdout.read().decode()
    return re
curdir=os.getcwd()
#连接的手机列表
mobiles=[]
cmd=[curdir +'/adb/adb.exe','devices']
mobilelist=runCmd(cmd)
mobilelist=mobilelist.split('\r\n')[1:]
# print(mobilelist)
for x in mobilelist:
    if x:
        mobiles.append(x)
if mobiles:
    print(mobiles)
else:
    print(['no devices\t no devices'])
#取第一个手机的序列号
xuliehao='';
if mobiles:
    #取第一个手机设备
    device=mobiles[0].split('\t')
    xuliehao=device[0]
    print(device)
#有手机连接上就截图
if xuliehao:
    #保存到本地电脑的图片路径
    timestamp = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
    jietupath='d:/screenshot-'+timestamp+'.png'
    sdcardpath='/sdcard/screenshot-'+timestamp+'.png'
    if os.path.exists(jietupath):
        os.remove(jietupath)
    print('it is screenshoting to mobile.....')
    jtcmd=curdir +'/adb/adb.exe   -s '+xuliehao+' shell /system/bin/screencap -p '+sdcardpath
    # print(jtcmd)
    result=runCmd(jtcmd)
    print('it is screenshot success.....')
    # print(result)
    print('it is moving screenshot to pc.....')
    jtcmd=curdir +'/adb/adb.exe  -s  '+xuliehao+' pull '+sdcardpath+' '+jietupath
    # print(jtcmd)
    result=runCmd(jtcmd)
    # print(result)
    #删除sd图片
    jtcmd=curdir +'/adb/adb.exe   -s '+xuliehao+' shell rm  '+sdcardpath
    # print(jtcmd)
    result=runCmd(jtcmd)
    print(result)
    print('it is moved screenshot to pc success.....')
else:
    print('no device!')

如图

blob.png


微信号:kelicom QQ交流群:215861553
点击更换验证码
留言