Python 实现键鼠操作

  • 前言
  • 需要的库
  • 直接上代码
  • 小结

前言

前几天玩的按键精灵由于版本太老,不兼容UTF8编码,就用python来封装了一些键鼠操作。

需要的库

  • time
  • pyautogui
  • OpenCV
  • aircv #Aircv是基于OpenCV的所以需要安装OpenCV和numpy
  • os
  • win32

直接上代码

1.导入库

import time
import pyautogui
import aircv as ac
import os
import win32gui
import win32con
import win32.win32clipboard as w

2.鼠标模拟

def getmouse():          #得到鼠标当前位置x,y=pyautogui.position()return x,ydef moveto(x,y,movetime=0): #鼠标移动 x,y_移动位置,movetime_移动时间pyautogui.moveTo(x,y,duration=movetime)def click_l():      #当前位置左键单击x,y=pyautogui.position()pyautogui.click(x,y,button="left")def click_r():       #当前位置右键单击x,y=pyautogui.position()pyautogui.click(x,y,button="right")def dbclick_l():    #左键双击pyautogui.doubleClick(button="left")def dbclick_r():    #右键双击pyautogui.doubleClick(button="right")def dbclick_m():   #中键双击pyautogui.doubleClick(button="middle")def mousedown():  #按下pyautogui.mouseDown()def mouseup():  #释放pyautogui.mouseUp()def scroll(sizes=0, x=None, y=None):#滑轮滑动 sizes_int类型,x,y_在x,y滑动位置pyautogui.scroll(sizes, x , y)

3.键盘模拟

def keydown():#按下pyautogui.keyDown()def keyup(): #弹起pyautogui.keyUp()def hotkey(*key):#热键 如ctrl+v _ hotkey("ctrl","v")pyautogui.hotkey(*key)

4.图像查找

##pyautogui自带的图像查找太慢了,识别准确率也不行,自己封装了一个。
def findpic(pic,areas,same=0.7):    #图像查找 pic_识别图片,areas_识别区域,same_相似度 ##不兼容中文路径fpic=ac.imread(pic)             #读取图片img=pyautogui.screenshot(region=areas)  #截屏,可以换其他截屏方式,我电脑PIL不知怎么的用不了,可以试试。img.save("jp.png")jp=ac.imread("jp.png")                  #读取图片result=ac.find_template(jp,fpic,same)   #用aircv识别os.remove("jp.png")                     #删除截屏 if(result!=None):        return result['result'][0],result['result'][1]  #返回图片左上角x,yreturn None

5.其他

def getword(提示=""):  #可以输入的消息弹窗word=pyautogui.prompt(提示)return worddef getscreensize():  #屏幕分辨率x,y=pyautogui.size()return x,ydef windows_findhwnd(cls=None,title=None):#获取顶层窗口句柄 class_类,title_标题hwnd = win32gui.FindWindow(cls, title) return hwnddef windows_Top(hwnd,key=0):##窗口置前 hwnd_窗口句柄,0_置前,1_置后if key==0: #置前 win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)win32gui.SetForegroundWindow(hwnd)elif key==1: #隐藏win32gui.ShowWindow(hwnd, win32con.SW_HIDE)def windows_moveto(x,y,hwnd):##窗口移动 hwnd_窗口句柄, x,y_移动位置left, top, right, bottom = win32gui.GetWindowRect(hwnd)win32gui.MoveWindow(hwnd,x,y,right-left,bottom-top,True)def hwnd_moveto(x,y,hwnd):##鼠标相对窗口移动 x,y_以窗口右上角为0,0移动位置,hwnd_句柄left, top, right, bottom = win32gui.GetWindowRect(hwnd)pyautogui.moveTo(x+left,y+top)def write(text=""): #写入文字    #原理:设置剪切板,粘贴w.OpenClipboard()w.EmptyClipboard()w.SetClipboardData(win32con.CF_UNICODETEXT, text)w.CloseClipboard()  #设置剪切板pyautogui.hotkey("ctrl","v") #粘贴def windows_setsize(x,y,hwnd): #设置窗口大小 x,y_窗口大小,hwnd_句柄left, top, right, bottom = win32gui.GetWindowRect(hwnd)win32gui.MoveWindow(hwnd,left,top,x,y,True)

小结

该方法可以设置成为一个模块,方便使用。
本人小白一个,如有错误还望指出。
技术不足,导致一些操作只能取巧,如果大家有更好的方法也能告诉我。
如果大家觉得有用,希望大家多多点赞!

Python 实现键鼠操作相关推荐

  1. 编写一个脚本,对至少三个以上记事本窗口做相同操作,对任意一个窗口进行手动操作,其余窗口由脚本执行相同步骤的键鼠操作,记得是键盘操作+鼠标操作。

    编写一个脚本,对至少三个以上记事本窗口做相同操作,对任意一个窗口进行手动操作,其余窗口由脚本执行相同步骤的键鼠操作,记得是键盘操作+鼠标操作.  按键等级认证5级 分享 答题思路: 对最上层记事本操作 ...

  2. Unity --- 基本键鼠操作

    1.我们对于键盘和鼠标的点击操作相当于在输入数据,这些输入的数据都会被存储到对应的数据缓存区中供程序读取和调用 而我们所谓的游戏程序中的键鼠操作其实就是当我们通过键盘输入了特定数据之后,游戏程序马上从 ...

  3. Python键鼠操作自动化库PyAutoGUI简介

    PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样.但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能.下面让我为大家介绍一 ...

  4. python自动化操作教程_Python键鼠操作自动化库PyAutoGUI简介

    PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样.但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能.下面让我为大家介绍一 ...

  5. python opencv 界面按钮_PyAutoGUI:自动化键鼠操作的Python类库

    有些朋友可能玩过按键精灵,一个用来操作键盘鼠标完成一些自动化工作的软件.其实如果你学了Python的话,完全用不着按键精灵这种东西了.因为广泛的Python类库里,就有PyAutoGUI这样可以变成控 ...

  6. Python实现按键精灵(一)-键鼠操作

    需要安装 pywin32库 pip install pywin32 import win32api import time #鼠标移动 def mouse_move(x,y):win32api.Set ...

  7. Creo 9.0 键鼠操作进行模型观察

    为了从不同角度观察模型的局部细节,需要放大.缩小.平移和旋转模型.在Creo中,可以用三键鼠标+键盘快捷键命令来完成下列不同的模型操作. (1)"旋转":按住鼠标中键+移动鼠标 ( ...

  8. AutoRunner模拟键鼠操作

    在AR的使用过程中,有些地方需要用到模拟键盘操作,这种键盘的模拟操作命令有很多,具体请见AR界面的:[帮助–脚本命令].那么今天我们一起看一些模拟键盘操作的命令和其使用: 1.inputDown 命令 ...

  9. WINIO64位模拟键鼠操作

    最近玩游戏有点入迷,心急升级经验,于是某天开始"挂尸体",一系列手动操作之后决定写一个外挂,模拟一系列键盘和鼠标操作,没做过游戏winform也用得少,开始以为只要简单调用winA ...

最新文章

  1. 【Leetcode | easy】罗马数字转整数
  2. 从互联网的旁观者,转为互联网的建设者,推动者!!!
  3. 安装es怎么在后台运行_ES备份索引数据到阿里云OSS
  4. 用户 'sa' 登录失败。 (Microsoft SQL Server,错误: 18456)
  5. andorid 第一天 搭建环境(于本博另一篇文章 ubuntu下安装andoird SDK相同内容)
  6. python人工智能原理及其应用_人工智能原理与实践:基于Python语言和TensorFlow
  7. 计算机在化学中的应用与探索,计算机在化学中的应用
  8. java 混淆 js_Vue javascript和css混淆
  9. 在Ubuntu上安装Drone持续集成环境
  10. 使用vmware12安装Ubuntu 遇到的两个问题和解决
  11. 关于C#窗体程序dataGridView控件的用法
  12. git remote: Permission to denied
  13. 学习PyQt5(四):PyQt5的控件Spacers
  14. CREO图文教程:三维设计案例之齿轮参数化设计(排屑槽+轴阵列+钻嘴)图文教程之详细攻略
  15. html文字发亮_CSS3字体发光效果
  16. mac os 多屏显示Dock
  17. Fabric v2.3 下载二进制文件和镜像bootstrap.sh脚本解析
  18. 前端晋升ppt_web前端幻灯片.ppt
  19. C++ thread
  20. DirectX SDK(June 2010)安装提示S1023报错的解决方法.

热门文章

  1. Apple Swift学习资料汇总
  2. 40页PPT详解:京东大数据基础构架与创新应用
  3. ink css,CSS text-decoration-skip-ink属性用法及代码示例
  4. 微信二维码线下推广是否有效
  5. 灵性图书馆:好书推荐-《在荷欧波诺波诺中遇见真正的自己》
  6. 计算机自主招生证书,高校自主招生必备常识:五大学科竞赛证书含金量
  7. 梦幻诛仙linux纯端架设教程,梦幻诛仙 一键端搭建iOS安卓双端+完整后台源码+各种工具附带视频架设教程...
  8. 学习javascript这一篇就够了超详细笔记(建议收藏)上
  9. emlog模板 Meta主题带后台开源版 资源娱乐网模板
  10. 阿里P5的测试开发工程师,都有哪些要求?