Python语言-模拟鼠标键盘动作
小标 2018-12-10 来源 : 阅读 2590 评论 0

摘要:本文主要向大家介绍了Python语言-模拟鼠标键盘动作,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言-模拟鼠标键盘动作,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

引在使用电脑的时候,偶尔有需求要模拟鼠标键盘,进行一些机械重复的操作(刷新网页、抢票、某些小游戏等)。如果为此专门下载一个按键精灵,总感觉杀鸡用牛刀,所以就开始探索一些轻量级解决方案。本人电脑上配置了Python,自然就想到那句名言人生苦短,我用PythonLife is short, you need Python -Bruce Eckel方案参考网上的各种例子后,发现了PyUserInput这个项目。在配置完成后,调用非常简便。准备进入项目主页,可以看到这个Python库是跨平台支持的,但是对应不同平台,需要安装依赖库。Linux - Xlib (python-xlib)Mac - Quartz, AppKitWindows - pywin32, pyHook安装使用pip工具,直接安装pip install PyUserInput调用方法以下部分参考PyUserInput项目在Python官网的说明只做简要翻译,方便理解。详细方法可以调用help()函数查看。在安装完PyUserInput后,pymouse和pykeyboard模块就被安装到你的Python路径下。建立一个鼠标和键盘对象:from pymouse import PyMousefrom pykeyboard import PyKeyboard
m = PyMouse()
k = PyKeyboard()接下来是一个示例,完成点击屏幕中央并键入“Hello, World!”的功能:x_dim, y_dim = m.screen_size()
m.click(x_dim/2, y_dim/2, 1)
k.type_string('Hello, World!')PyKeyboard还有很多种方式来发送键盘键入:# pressing a keyk.press_key('H')# which you then follow with a release of the keyk.release_key('H')# or you can 'tap' a key which does bothk.tap_key('e')# note that that tap_key does support a way of     repeating keystrokes with a interval time between eachk.tap_key('l',n=2,interval=5) 
# and you can send a string if needed took.type_string('o World!')并且它还支持很多特殊按键:#Create an Alt+Tab combok.press_key(k.alt_key)
k.tap_key(k.tab_key)
k.release_key(k.alt_key)
k.tap_key(k.function_keys[5]) # Tap F5k.tap_key(k.numpad_keys['Home']) # Tap 'Home' on the numpadk.tap_key(k.numpad_keys[5], n=3) # Tap 5 on the numpad, thrice注意,你也可以使用press_keys方法将多个键一起发送(例如,使用某些组合键):# Mac examplek.press_keys(['Command','shift','3'])# Windows examplek.press_keys([k.windows_l_key,'d'])平台之间的一致性是一个很大的挑战,请参考你使用的操作系统对应的源码,来理解你需要使用的按键格式。例如:# Windowsk.tap_key(k.alt_key)# Mack.tap_key('Alternate')我还想特别说明一下PyMouseEvent和PyKeyboardEvent的使用。这些对象是一个架构用于监听鼠标和键盘的输入;他们除了监听之外不会做任何事,除非你继承他们【注1】。PyKeyboardEvent为编写完成,所以这里是一个继承PyMouseEvent的例子:from pymouse import PyMouseEventdef fibo():
    a = 0
    yield a 
    b = 1
    yield b 
    while True:
        a, b = b, a+b        yield b 

class Clickonacci(PyMouseEvent):
    def __init__(self):
        PyMouseEvent.__init__(self)
        self.fibo = fibo()    def click(self, x, y, button, press):
        '''Print Fibonacci numbers when the left click is pressed.'''
        if button == 1:            if press:                print self.fibo.next()        else: # Exit if any other mouse button used
            self.stop()

C = Clickonacci()
C.run()

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved