前言
Windows pywin32允许你像vc一样的形式来使用python开发win32应用。代码风格可以类似win32 sdk,也可以类似MFC,由你选择。如果你仍不放弃vc一样的代码过程在python下,这不错的选择。

利用pywin32可以自动化进行电脑操作。包括复制粘贴,鼠标移动,键盘输入等等。

下载链接

一、pywin32常用函数
(1)获取鼠标位置
win32api.GetCursorPos()
1
(2)鼠标左键按下
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
1
(3)鼠标左键放开
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
1
(4)鼠标右键按下
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
1
(5)鼠标右键放开
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
1
(6)设置鼠标位置
win32api.SetCursorPos((x, y))
1
(7)键盘输入事件
win32api.keybd_event(VK_CODE[word], 0, 0, 0)
win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)
1
2
二、封装接口
(1)获取当前鼠标位置
def cursor_point(self):
"""
获取当前鼠标位置
"""
pos = win32api.GetCursorPos()
return int(pos[0]), int(pos[1])
1
2
3
4
5
6
(2)鼠标左击事件
def mouse_left_click(self, new_x=None, new_y=None, times=1):
"""
鼠标左击事件
:param new_x: 新移动的坐标x轴坐标
:param new_y: 新移动的坐标y轴坐标1506240215
:param times: 点击次数
"""
self.mouse_move(new_x, new_y)
time.sleep(0.05)
while times:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
times -= 1
1
2
3
4
5
6
7
8
9
10
11
12
13
(3)鼠标右击事件
def mouse_right_click(self, new_x=None, new_y=None):
"""
鼠标右击事件
:param new_x: 新移动的坐标x轴坐标
:param new_y: 新移动的坐标y轴坐标
"""
self.mouse_move(new_x, new_y)
time.sleep(0.05)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
1
2
3
4
5
6
7
8
9
10
(4)移动鼠标位置
def mouse_move(self, new_x, new_y):
if new_y is not None and new_x is not None:
point = (new_x, new_y)
win32api.SetCursorPos(point)
self.x = new_x
self.y = new_y
1
2
3
4
5
6
(5)键盘输入文本
def key_input(self, input_words=''):
for word in input_words:
win32api.keybd_event(VK_CODE[word], 0, 0, 0)
win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(0.1)
1
2
3
4
5
(6)键盘输入事件
def key_even(self, input_key):
win32api.keybd_event(VK_CODE[input_key], 0, 0, 0)
win32api.keybd_event(VK_CODE[input_key], 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
1
2
3
4
三、代码仓库
---------------------
作者:毕宿
来源:CSDN
原文:https://blog.csdn.net/qq_33371343/article/details/78916751
版权声明:本文为博主原创文章,转载请附上博文链接!

python32模拟鼠标和键盘操作的更多相关文章

  1. Python模拟鼠标和键盘操作实现重复性操作

    前言 由于工作需要,要利用某软件去采集数据,做重复的动作大概500多次.所以想写一个程序代替人,去点击和输入. 一开始的思路有两个:1.用Python或者windows对此软件直接操作.2.利用Pyt ...

  2. python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题

    Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其 ...

  3. C#模拟鼠标、键盘操作

    C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述         记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...

  4. web自动化 模拟鼠标、键盘操作

    一.鼠标操作 1.1鼠标的悬停操作,move_to_element from selenium import webdriver from selenium.webdriver.common.acti ...

  5. python3 模拟鼠标和键盘操作

    1. 安装pyperclip pip install pyperclip 使用方法复制 pyperclip.copy("hello world") 粘贴 pyperclip.pas ...

  6. python模拟鼠标和键盘操作

    import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backsp ...

  7. C# WPF 中用代码模拟鼠标和键盘的操作

    原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是,在WPF中不能使用这个方法了. 我们知道,在 ...

  8. 使用Robot类模拟鼠标、键盘事件

    Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...

  9. Qt之股票组件-股票检索--支持预览框、鼠标、键盘操作

    目录 一.感慨一下 二.效果展示 三.搜索编辑框 1.编辑框 2.预览框 四.相关文章 原文链接:Qt之股票组件-股票检索--支持预览框.鼠标.键盘操作 一.感慨一下 之前做过一款炒股软件,个人觉着是 ...

随机推荐

  1. Laravel Scout 开启队列, 自定义queue name和queue connection

    scout.php的默认配置: 'queue' => env('SCOUT_QUEUE', false), 修改为: 'queue' => [ 'queue' => env('SCO ...

  2. [转]vux使用教程

    原文:https://blog.csdn.net/revival_liang/article/details/78267992 <1>. 在项目里安装vuxnpm install vux ...

  3. 学习笔记:分布式日志收集框架Flume

    业务现状分析 WebServer/ApplicationServer分散在各个机器上,想在大数据平台hadoop上进行统计分析,就需要先把日志收集到hadoop平台上. 思考:如何解决我们的数据从其他 ...

  4. 【TLV】非递归TLV数据解析

    #include <stdio.h> #define X_LEN_OF_TAG_MAX ( 2 ) #define X_LEN_OF_LEN_MAX ( 2 ) struct st_tlv ...

  5. python中random模块的使用

    import random random.random() 产生0-1间的随机小数 >>> res = random.random() >>> print(res) ...

  6. angular 实现左侧和顶部固定定位布局

    1 布局基于angular ng-zorro组件库实现 由于项目中使用了组件库并且要求响应式布局,卡在这个坑上两天,多次调试后终于解决 代码仅供参考,由于没有上传依赖的库和组件包无法直接运行,提供代码 ...

  7. 第七次实验:CC2530平台上多跳通信的TinyOS编程

    module  P2MM { uses interface Boot; uses interface Timer<TMilli> as Timer0; uses interface Spl ...

  8. 初学高级程序设计 shell编程

    初学shell编程,遇到的一些问题和总结: 一.#!/bin/sh 为什么要在shell程序里要加这一行? 首先在shell编程里面,"#"符号确实是一个注释符号,但是在这里绝对不 ...

  9. ubuntu18.04 配置chrome ss

    为了FQ 不FQ不行啊 安装shaowsocks 1. 用实验室的服务器 sslocal -c xxx.json 2. 下载SwitchyOmega插件 链接: https://pan.baidu.c ...

  10. 学习笔记TF056:TensorFlow MNIST,数据集、分类、可视化

    MNIST(Mixed National Institute of Standards and Technology)http://yann.lecun.com/exdb/mnist/ ,入门级计算机 ...