python控制鼠标,键盘,adb

python控制鼠标,键盘,adb

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

同学之间相识即是一场缘分,相互珍惜吧。

更新中...

文章目录

  • python控制鼠标,键盘,adb
    • [1. pyautogui](#1. pyautogui)
      • [1. 键盘相关](#1. 键盘相关)
      • [2. 鼠标相关](#2. 鼠标相关)
      • [3. 屏幕截取](#3. 屏幕截取)
    • [2. pynput](#2. pynput)
    • [3. adb相关](#3. adb相关)
      • [1. adb概念](#1. adb概念)
      • [2. 略](#2. 略)
    • 参考

1. pyautogui

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

解决:

windows:ctrl+alt+del

mac os:command+shift+option+q

1. 键盘相关

输出字符

python 复制代码
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 键盘Enter altleft,altright 键盘左右Alt
backspace 键盘Backspace ctrlleft,ctrlright 键盘左右Ctrl
delete 键盘Del shiftleft,shiftright 键盘左右shift
esc 键盘Esc home,end 键盘Home,End
f1,f2等 键盘F1,F2等 pageup,pagedown 键盘PgUp,PgDn
tab或\t 键盘Tab up,down,left,right 键盘上下左右
printscreen 键盘PrtSc winleft,winright 左Win键以及右Win键
insert 键盘Ins command Mac OS Command键
option Mac OS option键
python 复制代码
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') #组合键打开搜索框
python 复制代码
# 自动到下一个输入框
import pyautogui
import time
time.sleep(6) # 有6秒的时间设置光标焦点
pyautogui.typewrite('lihua\t')
pyautogui.typewrite('123456\t')

2. 鼠标相关

获取位置以及移动鼠标

python 复制代码
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界面在固定位置输出

python 复制代码
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)

拖动鼠标画图

python 复制代码
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是鼠标光标移动位置,可以省略。

python 复制代码
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. 屏幕截取

python 复制代码
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,可使用ls,cd,exit等命令
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

相关推荐
默_笙5 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003965 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技5 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时5 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车5 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊5 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1235 天前
2026年第38周GitHub趋势周报
python·科技·github