# _*_ coding:UTF-8 _*_

'''

本文在原程序的基础上做了修改补充,更加清晰易懂。

get_mouse_point():返回当前鼠标的值(x,y)

mouse_move(x,y):移动鼠标

mouse_click(x,y):单击

mouse_dclick(x,y):双击

put(str='',flag=0):flag默认为0,则表示输入的字符串,为1:字符要表示的是快捷组合按键,快捷键要用空格分开

'''

import win32api

import win32con

import win32gui

from ctypes import *

import time

VK_CODE = {

'backspace':0x08,

'tab':0x09,

'clear':0x0C,

'enter':0x0D,

'shift':0x10,

'ctrl':0x11,

'alt':0x12,

'pause':0x13,

'caps_lock':0x14,

'esc':0x1B,

'spacebar':0x20,

'page_up':0x21,

'page_down':0x22,

'end':0x23,

'home':0x24,

'left_arrow':0x25,

'up_arrow':0x26,

'right_arrow':0x27,

'down_arrow':0x28,

'select':0x29,

'print':0x2A,

'execute':0x2B,

'print_screen':0x2C,

'ins':0x2D,

'del':0x2E,

'help':0x2F,

'0':0x30,

'1':0x31,

'2':0x32,

'3':0x33,

'4':0x34,

'5':0x35,

'6':0x36,

'7':0x37,

'8':0x38,

'9':0x39,

'a':0x41,

'b':0x42,

'c':0x43,

'd':0x44,

'e':0x45,

'f':0x46,

'g':0x47,

'h':0x48,

'i':0x49,

'j':0x4A,

'k':0x4B,

'l':0x4C,

'm':0x4D,

'n':0x4E,

'o':0x4F,

'p':0x50,

'q':0x51,

'r':0x52,

's':0x53,

't':0x54,

'u':0x55,

'v':0x56,

'w':0x57,

'x':0x58,

'y':0x59,

'z':0x5A,

'numpad_0':0x60,

'numpad_1':0x61,

'numpad_2':0x62,

'numpad_3':0x63,

'numpad_4':0x64,

'numpad_5':0x65,

'numpad_6':0x66,

'numpad_7':0x67,

'numpad_8':0x68,

'numpad_9':0x69,

'multiply_key':0x6A,

'add_key':0x6B,

'separator_key':0x6C,

'subtract_key':0x6D,

'decimal_key':0x6E,

'pide_key':0x6F,

'F1':0x70,

'F2':0x71,

'F3':0x72,

'F4':0x73,

'F5':0x74,

'F6':0x75,

'F7':0x76,

'F8':0x77,

'F9':0x78,

'F10':0x79,

'F11':0x7A,

'F12':0x7B,

'F13':0x7C,

'F14':0x7D,

'F15':0x7E,

'F16':0x7F,

'F17':0x80,

'F18':0x81,

'F19':0x82,

'F20':0x83,

'F21':0x84,

'F22':0x85,

'F23':0x86,

'F24':0x87,

'num_lock':0x90,

'scroll_lock':0x91,

'left_shift':0xA0,

'right_shift ':0xA1,

'left_control':0xA2,

'right_control':0xA3,

'left_menu':0xA4,

'right_menu':0xA5,

'browser_back':0xA6,

'browser_forward':0xA7,

'browser_refresh':0xA8,

'browser_stop':0xA9,

'browser_search':0xAA,

'browser_favorites':0xAB,

'browser_start_and_home':0xAC,

'volume_mute':0xAD,

'volume_Down':0xAE,

'volume_up':0xAF,

'next_track':0xB0,

'previous_track':0xB1,

'stop_media':0xB2,

'play/pause_media':0xB3,

'start_mail':0xB4,

'select_media':0xB5,

'start_application_1':0xB6,

'start_application_2':0xB7,

'attn_key':0xF6,

'crsel_key':0xF7,

'exsel_key':0xF8,

'play_key':0xFA,

'zoom_key':0xFB,

'clear_key':0xFE,

'+':0xBB,

',':0xBC,

'-':0xBD,

'.':0xBE,

'/':0xBF,

'`':0xC0,

';':0xBA,

'[':0xDB,

'//':0xDC,

']':0xDD,

"'":0xDE,

'`':0xC0}

class POINT(Structure):#鼠标位置二维数组对象

_fields_ = [("x", c_ulong),("y", c_ulong)]

def get_mouse_point():#获取鼠标位置

po = POINT()

windll.user32.GetCursorPos(byref(po))

return int(po.x), int(po.y)

def mouse_click(x=None,y=None):#单击(左键)

if not x is None and not y is None:

mouse_move(x,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)#弹起

def mouse_dclick(x=None,y=None):#双击

if not x is None and not y is None:

mouse_move(x,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)

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

def mouse_move(x,y):#移动鼠标

windll.user32.SetCursorPos(x, y)

def put(str='',flag=0):#flag默认为0,则表示输入的字符串,为1:字符要表示的是快捷组合按键

if flag==0:

for c in str:

if c == ' ':#处理空格

win32api.keybd_event(VK_CODE['spacebar'],0,0,0)

win32api.keybd_event(VK_CODE['spacebar'],0,win32con.KEYEVENTF_KEYUP,0)

else:

win32api.keybd_event(VK_CODE[c],0,0,0)

win32api.keybd_event(VK_CODE[c],0,win32con.KEYEVENTF_KEYUP,0)

else:

cmd = str.split(' ')

for i in cmd:

win32api.keybd_event(VK_CODE[i],0,0,0)

cmd.reverse()

for i in cmd:#快捷键释放的时候要逆序释放

win32api.keybd_event(VK_CODE[i],0,win32con.KEYEVENTF_KEYUP,0)

time.sleep(1)

if __name__ == "__main__":

mouse_dclick(1083,139)

put('hello world',0)

put('ctrl v',1) #快捷键要用空格分开

python win32api教程_解放双手——python win32api 入门相关推荐

  1. python经典教程_零基础 Python爬虫经典实战教程

    最近Python爬虫比较火,看到网上分享源码的比较多,很少有教程帖子,为了帮助新人和对爬虫比较感兴趣的朋友,所以想到写一些比较详细教程帖子!大家共同学习! 下载工具,安装对应系统的版本,下面以wind ...

  2. python压缩教程_如何使用Python压缩/解压缩zip文件?(代码示例)

    在批量交换大文件和多个文件时,使用zip文件是非常方便的.下面本篇文章就来带大家认识解一下zip文件,介绍使用Python压缩或解压缩zip文件的方法,希望对大家有所帮助.[视频教程推荐:Python ...

  3. python networkx教程_如何在python中使用networkx绘制有向图?

    我只是为了完整而把它放进去 . 我从marius和mdml中学到了很多东西 . 这是边缘权重 . 抱歉箭头 . 看起来我不是唯一一个说它无法帮助的人 . 我无法使用ipython笔记本呈现这一点我不得 ...

  4. python插图教程_可爱的Python (哲思社区)插图版_Python教程

    资源名称:可爱的Python (哲思社区)插图版 本书的内容主要来自CPyUG社区的邮件列表,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导 ...

  5. selenium python高级教程_自动化测试系列 python+selenium的使用教程(一)

    Selenium也是一个用于Web应用程序的自动化测试工具,功能强大,可直接运行在浏览器中,支持大部分主流浏览器,支持自动录制动作和自动生成,最重要的是支持多种主流语言包括java,python等. ...

  6. python 爬虫 教程_一个入门级python爬虫教程详解

    前言 本文目的:根据本人的习惯与理解,用最简洁的表述,介绍爬虫的定义.组成部分.爬取流程,并讲解示例代码. 基础 爬虫的定义:定向抓取互联网内容(大部分为网页).并进行自动化数据处理的程序.主要用于对 ...

  7. 莫烦python系列教程_莫烦python教程学习笔记——总结篇

    一.机器学习算法分类: 监督学习:提供数据和数据分类标签.--分类.回归 非监督学习:只提供数据,不提供标签. 半监督学习 强化学习:尝试各种手段,自己去适应环境和规则.总结经验利用反馈,不断提高算法 ...

  8. python是什么编程教程-编程python是什么_谁的Python教程最好?

    谁的Python教程最好? 建议你可以看看这里的<Python基础教程>和<Python学习手册>应该适合你的. 希望对你有用. 记得采纳呀~ Python中的9个代码小实例! ...

  9. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...

    资源介绍 课程简介:xa0xa0 Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频 ----------------------课程目录 Python项目实战篇 ...

  10. python爬取微信群聊天信息_跳一跳python使用教程 微信跳一跳python怎么刷分

    跳一跳python使用教程 微信跳一跳python怎么刷分?下面一起来看看吧. 微信跳一跳python怎么刷分?跳一跳python使用教程: 工具介绍 Python 2.7 Android 手机 Ad ...

最新文章

  1. Ubuntu创建opencv工程并显示一张图片
  2. SAP MM 物料主数据的Document Data
  3. Java避免创建不必要的对象
  4. 响应用户呼声 币安更正BCH简称
  5. 蓝牙协议 HFP,HSP,A2DP,A2DP_CT,A2DP_TG,AVRCP,OPP,PBAP,SPP,FTP,TP,DTMF,DUN,SDP
  6. angularJS 表单验证
  7. python求一组数的最大值_python快速求一个数组的最大值/最小值及其索引
  8. LeetCode 369. 给单链表加一(递归)
  9. hadoop之DataBlockScanner
  10. spark学习-76-目标:如何成为大数据Spark高手
  11. python iterableiterator
  12. Oracle 集群sysbackup用户登陆随机报错ORA-01017
  13. axure sketch 对比_Sketch 画原型比 Axure 好用吗?为什么
  14. 谷歌邮箱lmap服务器填什么_Gmail/QQ邮箱/163邮箱等各大邮箱IMAP/SMTP/POP3地址
  15. 100句永久珍藏的人生格言
  16. neural networks logistic regression 神经网络逻辑回归
  17. windows功能_四款功能强大的windows软件,个个都是精品!
  18. 新《古惑仔》 —— 神转折大赛
  19. 计算机网络的基础知识
  20. 手机html特效菊花的彩铅画,彩铅教程 | 菊花的画法步骤

热门文章

  1. MySQL5.5安装包 安装详解
  2. 备忘--moodle安装
  3. 《OpenGL编程指南(原书第9版)》——3.4 OpenGL的绘制命令
  4. 基于TCP的在线词典
  5. eXeScope 使用中的小技巧
  6. 中国顶级***--小榕
  7. Geohot使用绿雨的BETA4越狱iPhone4 4.1固件详细教程
  8. 『ExtJS』表单(二)表单行为与Asp.NET页面的消息回复
  9. Veritas Backup Exec 22 (Windows)
  10. 22年PMP考试【全真敏捷试题】