使用 Python 截取 ADB
Screenshotting ADB using Python
所以我正在尝试截取 adb 并纯粹从 Python 处理它,因此用户设备上不会保存任何文件。
我为此创建了以下辅助函数
def adb_run(command, verbose=False):
result = subprocess.run([r"D:\Program Files\Nox\bin\adb.exe"] + command, stdout=subprocess.PIPE, errors="ignore")
if verbose:
print(result.stdout)
return result
def shell(command, verbose=False):
return adb_run(['shell', command], verbose)
def screencap():
return shell(f"screencap -p")
然后我调用了 screencap()
函数并将其写入文件,内容似乎是一个有效的 PNG 文件,但我无法加载 png 文件,因为它说它已损坏
capped = screencap().stdout
with open("screencap.png", "wb") as f:
f.write(capped.encode())
有谁知道为什么镜像文件会损坏?我还没有在网上找到任何纯粹的 python 解决方案
尝试使用 exec-out
而不是 shell
。
def screencap(filename):
return adb_run(['exec-out', f'screencap -p > {filename}'])
所以我正在尝试截取 adb 并纯粹从 Python 处理它,因此用户设备上不会保存任何文件。
我为此创建了以下辅助函数
def adb_run(command, verbose=False):
result = subprocess.run([r"D:\Program Files\Nox\bin\adb.exe"] + command, stdout=subprocess.PIPE, errors="ignore")
if verbose:
print(result.stdout)
return result
def shell(command, verbose=False):
return adb_run(['shell', command], verbose)
def screencap():
return shell(f"screencap -p")
然后我调用了 screencap()
函数并将其写入文件,内容似乎是一个有效的 PNG 文件,但我无法加载 png 文件,因为它说它已损坏
capped = screencap().stdout
with open("screencap.png", "wb") as f:
f.write(capped.encode())
有谁知道为什么镜像文件会损坏?我还没有在网上找到任何纯粹的 python 解决方案
尝试使用 exec-out
而不是 shell
。
def screencap(filename):
return adb_run(['exec-out', f'screencap -p > {filename}'])