自学内容网 自学内容网

python控制鼠标,键盘,adb

python控制鼠标,键盘,adb

听说某系因为奖学金互相举报,好像拿不到要命一样。不禁想到几天前老墨偷走丁胖子的狗,被丁胖子逮到。他面对警察的问询面不改色坚持自我,反而是怒气冲冲的丁胖子被警察认为是偷狗贼。我觉得这就是一种自信:凡事以自我为中心,当感性战胜理性,自己就是真理。
同学之间相识即是一场缘分,相互珍惜吧。

更新中…

1. pyautogui

运行时可能失去对鼠标键盘的控制。

解决:

windows:ctrl+alt+del

mac os:command+shift+option+q

1. 键盘相关

输出字符

import pyautogui
import time
time.sleep(8) # 有8秒的时间设置光标焦点
pyautogui.write('Hello, World!', interval=0.1)  # 每个字符之间间隔0.1秒打印
pyautogui.write(['a','p','p','p','backspace','l','l','left','delete','e'], interval=0.1)

在这里插入图片描述

特殊python输入

enter\n键盘Enteraltleftaltright键盘左右Alt
backspace键盘Backspacectrlleftctrlright键盘左右Ctrl
delete键盘Delshiftleftshiftright键盘左右shift
esc键盘Eschome,end键盘Home,End
f1f2键盘F1F2pageup,pagedown键盘PgUp,PgDn
tab\t键盘Tabup,down,left,right键盘上下左右
printscreen键盘PrtScwinleft,winright左Win键以及右Win键
insert键盘InscommandMac OS Command键
optionMac OS option键
import pyautogui
import time
time.sleep(5) # 有5秒的时间设置光标焦点
#相当于组合键a+8,打印a8
pyautogui.keyDown('a')#按下按键不松开
pyautogui.press('8')#按下按键不松开
pyautogui.keyUp('a') #放开所按按键
#相当于组合键ctrl+f,开搜索框
pyautogui.hotkey('ctrl','f') #组合键打开搜索框
# 自动到下一个输入框
import pyautogui
import time
time.sleep(6) # 有6秒的时间设置光标焦点
pyautogui.typewrite('lihua\t')
pyautogui.typewrite('123456\t')

在这里插入图片描述

2. 鼠标相关

获取位置以及移动鼠标

import pyautogui
import time
time.sleep(2) #2秒程序开始
#目前计算机屏幕像素
Swidth,Sheight=pyautogui.size()
print(Swidth,Sheight)
# 获取鼠标光标位置
xloc,yloc=pyautogui.position()
print(xloc,yloc)
# 绝对位置移动光标
time.sleep(1)
pyautogui.moveTo(1500,600,duration=2)# 两秒时间移动鼠标移动到此
time.sleep(1)
pyautogui.moveRel(0,300,duration=1)#一秒时间鼠标光标相对于之前位置向下移动300

DOS界面在固定位置输出

import pyautogui
import time
time.sleep(2) #2秒程序开始
print('ctrl+c可结束本程序')
try:
    while True:
        xloc,yloc=pyautogui.position()
        str1='x= '+str(xloc).rjust(4)+', y= '+str(yloc).rjust(4) #右对齐
        print(str1,end='\r',flush=True)
        #\r光标回到行首,flush=True立即将输出刷新到窗口,避免输出缓冲导致的消息延迟问题
        time.sleep(1)
except KeyboardInterrupt:
    print('Bye!')

在这里插入图片描述

按住与放开鼠标

import pyautogui
import time
time.sleep(5) #2秒程序开始
pyautogui.mouseDown(button='right') # 在鼠标光标位置按住鼠标右键
time.sleep(1)
pyautogui.mouseUp(800,300,button='right') # 放开后鼠标光标在(800,300)

拖动鼠标画图

import pyautogui
import time

time.sleep(3)      # 这10秒需要绘图窗口取得焦点,选择画笔和选择颜色
pyautogui.click()   # 单击设定绘图起始点
displacement = 10
while displacement < 300:
    pyautogui.dragRel(displacement, 0, duration=0.2) #相对于原位置向右拖动,用时0.2秒
    pyautogui.dragRel(0, displacement, duration=0.2) #相对于原位置向下拖动
    pyautogui.dragRel(-displacement, 0, duration=0.2) #相对于原位置向左拖动
    pyautogui.dragRel(0, -displacement, duration=0.2) #相对于原位置向上拖动
    displacement += 10

在这里插入图片描述

窗口滚动

scroll(clicks=,x=,y=)

clicks是窗口滚动的单位数,x,y是鼠标光标移动位置,可以省略。

import pyautogui
import time

time.sleep(5)
pyautogui.scroll(30)    # 往上卷动      
time.sleep(3)
pyautogui.scroll(-30)   # 往下卷动
time.sleep(3)
pyautogui.scroll(-60,x=500,y=800) #先将鼠标光标移动到(500,800)处然后才开始滚动,实测肉眼所见鼠标位置并未发生变化

3. 屏幕截取

import pyautogui
#方法一
screenImage = pyautogui.screenshot("out_1.jpg")
#方法二
screenImage.save("out_2.jpg")
# 截取一部分
screenImage = pyautogui.screenshot()
cropPict = screenImage.crop((960,210,1900,480))
#The box is a 4-tuple defining the left, upper, right, and lower pixel coordinate
cropPict.save("out_3.jpg")

out_1.jpg和out_2.jpg

在这里插入图片描述

out_3.jpg

在这里插入图片描述

2. pynput

3. adb相关

1. adb概念

adb:Android Debug Bridge,起到调试桥作用。

ADB可以直接操作管理手机模拟器或者真实的Android设备,它的主要功能有:

  1. 运行设备的shell
  2. 管理模拟器或设备的端口映射
  3. 计算机和设备之间的上传/下载文件
  4. 可以对设备的应用进行卸载安装等。

简而言之,adb可以让用户在电脑上对手机进行操作。

华为手机开发者模式开启允许usb调试,HDB连接设备,外部来源应用下载。

电脑需要在设备安全性->内核隔离->关闭内存完整性,然后重启。

跟着华为的操作走,后面如下图所示连接成功。

在这里插入图片描述

命令说明
adb -p 5037 start-server杀死当前adb服务并重启在5037端口
adb kill-server关闭adb服务
adb devices查看当前连接的设备
adb get-serialno查看设备号
adb shell进入shell,可使用lscdexit等命令
adb root获得root权限(安卓9以上不行)
adb remount获取system文件的读写权限
adb -s 设备号 shell当同时连接了多台设备,指定一个设备号进行连接
adb shell pm list packages列出手机所装的所有app的包名。
-f额外显示安装路径。
-e显示当前启用的包名
-d显示当前禁用的包名
-s显示系统应用包名
-3显示已安装的第三方包名
xxx需要过滤的包名
adb shell rm *.apk删除系统应用
adb install d:\xxx.apk通过命令安装安卓应用。
-r覆盖安装
-g安装时把所有权限打开
允许降级覆盖安装
adb uninstall apk 包名通过命令卸载安卓应用。
-k卸载时保留该应用的数据和缓存
adb shell am force-stop 包名强制退出该应用
adb push 本地路径 远程手机路径上传文件
adb pull 远程路径 本地路径下载文件
adb logcat查看日志

获取一些信息

adb shell getprop ro.product.model获取设备型号
adb shell getprop ro.build.version.release获取Android系统版本
adb shell dumpsys activity |find 包名查看前台应用包名,必须先启动app,适用于Android 8.0以上
adb shell cat /proc/meminfo获取手机内存信息
adb shell df获取手机存储信息

截屏相关

adb shell wm size查看屏幕分辨率
adb shell screencap -p /sdcard/mms.png屏幕截图
adb shell screencap -p /sdcard/screenshot.png屏幕截图
adb shell screenrecord 存放路径/xxx.mp4录屏,命名以.mp4结尾
adb shell screenrecord --time-limit 10 存放路径/xxx.mp4录屏时间为10秒

2. 略

赶作业中。。。

参考

我心中的王者:Python-用Python控制鼠标、屏幕与键盘 andyyah晓波

ADB安装及使用详解 程序员-老K


原文地址:https://blog.csdn.net/google20/article/details/144044602

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!