python控制鼠标,键盘,adb

news2024/11/28 20:24:57

python控制鼠标,键盘,adb

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

更新中…

文章目录

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2249293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yum安装升级指定版本软件

与apt相同&#xff0c;yum也可以指定升级软件版本。 这里以升级gitlab-ce为例。 获得当前可用版本命令如下&#xff1a; yum list gitlab-ce --showduplicates 查看当前gitlab版本。在/var/opt/gitlab/gitlab-rails/查看VERSION文件内容&#xff1a; cat VERSION 当前版本…

el-table根据接口返回某一个字段合并行

根据名称相同合并行 <template><div><el-table :data"responseSearchIntegralAddData" :span-method"objectSpanMethod1" border style"width: 100%"><el-table-column prop"integralTypeName" label"名称…

Jmeter中的前置处理器

5&#xff09;前置处理器 1--JSR223 PreProcessor 功能特点 自定义数据处理&#xff1a;使用脚本语言处理请求数据&#xff0c;实现高度定制化的数据处理和生成。动态数据生成&#xff1a;在请求发送前生成动态数据&#xff0c;如随机数、时间戳等。变量设置&#xff1a;设置…

ABAP OOALV模板

自用模板&#xff0c;可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…

新能源汽车充电基础设施短板问题多,如何实现高效、综合、智能化管理?

随着城市经济的发展&#xff0c;人民生活水平的提升&#xff0c;新能源汽车保有量快速增长&#xff0c;而日益增长的新能源汽车需求与充电基础设施建设不平衡的矛盾日益突出。由于停车泊位充电基础设施总量不足、布局待优化、利用效率低、建设运营存在短板问题等原因&#xff0…

LeetCode:19.删除链表倒数第N个节点

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;19.删除链表倒数第N个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表…

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置&#xff0c;可以通过快捷键 Ctrl Shift P 打开命令面板&#xff0c;然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令&#xff0c;这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…

Windows远程连接桌面报错“由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系

摘要 windows server配置了多用户登录&#xff0c;默认自动生成的连接许可证有效日期为120天&#xff0c;超过了这个时间后&#xff0c;用户将不能远程连接服务器。 需要配置多用户服务器&#xff0c;进行获取许可 问题 解决方法 1、win键R打开运行器&#xff0c;使用mstsc …

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…

受天鹅绒蠕虫启发:软胶机器人如何实现刚度可调的粘附控制

大家好&#xff01;今天来了解一篇微型机器人研究——《Stiffness-tunable velvet worm–inspired soft adhesive robot》发表于《SCIENCE ADVANCES》。大家想想&#xff0c;在人体内部这样复杂的环境中&#xff0c;微型机器人要稳定操作&#xff0c;粘附控制是多么关键啊&…

Flink--API 之 Source 使用解析

目录 一、Flink Data Sources 分类概览 &#xff08;一&#xff09;预定义 Source &#xff08;二&#xff09;自定义 Source 二、代码实战演示 &#xff08;一&#xff09;预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字&#xff08;socketTextStream&…

typescript基础入门

在官网的页页https://www.typescriptlang.org/可以调试。 &#xff03;类型推断 let str: string abclet str1: string str1a&#xff03;数组及类型断言let numArr [1, 2, 3]const result numArr.find(item > item >2) as numberresult * 5&#xff03;基础类型和…

SenseVoice 音频转文字情绪识别 - python 实现

具体代码实现如下&#xff1a; from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocesspath_audio "emo/happy.mp3"# 音频文件 # 加载模型 model_dir "iic/SenseVoiceSmall" model AutoModel(model…

Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this

目录 一&#xff0c;方法的重写 二&#xff0c;重写方法的注意事项 三&#xff0c;方法重写的使用场景 四&#xff0c;super和this 1.继承中构造方法的特点 2.super和this的具体使用 super的具体使用 this的具体使用 一&#xff0c;方法的重写 1.概述:子类中有一个和父类…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题 一.OSI含义二.OSI七层模型1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层 TCP/IP五层协议1.应用层2.运输层运行在TCP上的协议运行在UDP上的协议 3.网络层IP协议配套使用的协议 4.数据链路层 四.网络协议分层的好处 一.OSI含义 OSI即是开放式通…

360推出全新的生成式 AI 搜索产品:纳米搜索,要重塑搜索产品

【大力财经】直击互联网最前线&#xff1a;360 集团在 2024 年 11 月 27 日开发布会&#xff0c;重磅推出了一款全新的生成式 AI 搜索产品——纳米搜索&#xff0c;并且已经上架到苹果 App Store 以及应用宝等安卓应用商店&#xff0c;直接与百度、阿里夸克、秘塔 AI、Perplexi…

【超全】目标检测模型分类对比与综述:单阶段、双阶段、有无锚点、DETR、旋转框

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

c#:winform引入bartender

1、vs新建项目 ①选择Windows窗体应用&#xff08;.NET Framework&#xff09; 2、将bartender引入vs中 ①找到bartender的安装目录&#xff0c;复制Seagull.BarTender.Print.dll文件 ②粘贴到项目->bin->Debug文件&#xff0c;并可创建Model文件夹&#xff1a;为了存放…

vue 实现关键字高亮效果

vue 实现关键字高亮效果 这是啥子意思呢&#xff0c;就是类似于百度搜索&#xff0c;根据关键词搜索结果&#xff0c;搜索结果中&#xff0c;与关键词相同的字显示红色&#xff0c;仅此而已&#xff0c;没有什么大的功能。简单写一下demo。 环境 我使用的是 vue3 ts 的语法来…