用pywin32实现windows模拟鼠标及键盘动作


Posted in Python onApril 22, 2014

因为要批量用某软件处理一批eps文件,所以要模拟鼠标及键盘动作,使其能够自动化操作。

#-*-coding:utf-8-*-
import os
import time
import win32gui
import win32api
import win32con
from PIL import ImageGrab
#os.startfile("D:\\artcut6\\Prog\\Artcut6.exe")
#time.sleep(1)
wdname1=u"文泰刻绘2009[] - [无标题-1]"
w1hd=win32gui.FindWindow(0,wdname1)
print w1hd
w2hd=win32gui.FindWindowEx(w1hd,None,None,None)
print w2hd
def aotohelper_wt(i):
 #获取窗口焦点
 win32gui.SetForegroundWindow(w2hd)
 #快捷键Alt+F
 win32api.keybd_event(18,0,0,0)      # Alt
 win32api.keybd_event(70,0,0,0)     # F
 win32api.keybd_event(70,0,win32con.KEYEVENTF_KEYUP,0)  #释放按键
 win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)
 #快捷键I
 win32api.keybd_event(73,0,0,0)     # I
 win32api.keybd_event(73,0,win32con.KEYEVENTF_KEYUP,0)
 time.sleep(0.2)
 wdname3=u"打开"
 w3hd=win32gui.FindWindow(None,wdname3)  #”打开“ 窗口句柄   
 #print w3hd
 #win32gui.MoveWindow(w3hd, 50, 50, 300, 200, True)
 if i<=9:
  msg="YC-00"+str(i)
 elif 10<=i<=99:
  msg="YC-0"+str(i)
 else:
  msg="YC-"+str(i)
 edithd=win32gui.FindWindowEx(w3hd,None,"Edit",None)
 win32api.SendMessage(edithd,win32con.WM_SETTEXT,None,msg)
 time.sleep(0.1)
 #btnhd=win32gui.FindWindowEx(w3hd,None,"BUTTON",None)
 #print btnhd
 #模拟快捷键Alt+O
 win32api.keybd_event(18,0,0,0)      # Alt
 win32api.keybd_event(79,0,0,0)     # O
 win32api.keybd_event(79,0,win32con.KEYEVENTF_KEYUP,0)  #释放按键
 win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)
 time.sleep(0.1)
 #模拟鼠标操作
 win32api.SetCursorPos([30,150])    #为鼠标焦点设定一个位置
 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0,0) 
 win32api.SetCursorPos([500,500])
 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0,0)
 time.sleep(0.1)
 #模拟快捷键F7(极限观察)
 win32api.keybd_event(118,0,0,0)     # F7
 win32api.keybd_event(118,0,win32con.KEYEVENTF_KEYUP,0)  #释放按键
 time.sleep(0.2)
 #利用PIL截屏
 path="C:\\Users\\LY\\Desktop\\pic\\"
 filename="YC-"+str(i)+".jpg"
 im=ImageGrab.grab()
 im.save(path+filename)
 #模拟快捷键F8(回到原页面大小)
 win32api.keybd_event(119,0,0,0)     # F8
 win32api.keybd_event(119,0,win32con.KEYEVENTF_KEYUP,0)  #释放按键
 #模拟键盘事件delete
 win32api.keybd_event(46,0,0,0)     # Delete
 win32api.keybd_event(46,0,win32con.KEYEVENTF_KEYUP,0)  #释放按键
 time.sleep(1)
for i in range(2,85):
 aotohelper_wt(i)
 print i
print "work done!"
Python 相关文章推荐
初步讲解Python中的元组概念
May 21 Python
Python处理JSON数据并生成条形图
Aug 05 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
Python计算两个日期相差天数的方法示例
May 23 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
对Python函数设计规范详解
Jul 19 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python mysql中in参数化说明
Jun 05 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
python实现linux服务器批量修改密码并生成execl
Apr 22 #Python
python中精确输出JSON浮点数的方法
Apr 18 #Python
python中使用OpenCV进行人脸检测的例子
Apr 18 #Python
在python的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 #Python
Python操作json数据的一个简单例子
Apr 17 #Python
python使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 #Python
python调用windows api锁定计算机示例
Apr 17 #Python
You might like
PHP中,文件上传
2006/12/06 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
python装饰器使用方法实例
2013/11/21 Python
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python多维数组切片方法
2018/04/13 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
金鑫耀Java笔试题
2014/09/06 面试题
法院先进个人事迹材料
2014/05/04 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
党代会心得体会
2014/09/04 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
MySQL读取JSON转换的方式
2022/03/18 MySQL
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL