第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Python-模擬鼠標(biāo)鍵盤動(dòng)作

標(biāo)簽:
Python

在使用电脑的时候,偶尔有需求要模拟鼠标键盘,进行一些机械重复的操作(刷新网页、抢票、某些小游戏等)。如果为此专门下载一个按键精灵,总感觉杀鸡用牛刀,所以就开始探索一些轻量级解决方案。本人电脑上配置了Python,自然就想到那句名言

人生苦短,我用Python
Life is short, you need Python -Bruce Eckel

方案

参考网上的各种例子后,发现了PyUserInput这个项目。在配置完成后,调用非常简便。

  • 准备

进入项目主页,可以看到这个Python库是跨平台支持的,但是对应不同平台,需要安装依赖库。

Linux - Xlib (python-xlib)
Mac - Quartz, AppKit
Windows - pywin32, pyHook


  • 安装

使用pip工具,直接安装

pip install PyUserInput


  • 调用方法

以下部分参考PyUserInput项目在Python官网的说明只做简要翻译,方便理解。详细方法可以调用help()函数查看。

在安装完PyUserInput后,pymousepykeyboard模块就被安装到你的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')

我还想特别说明一下PyMouseEventPyKeyboardEvent的使用。

这些对象是一个架构用于监听鼠标和键盘的输入;他们除了监听之外不会做任何事,除非你继承他们【注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()

注1:原文为

These objects are a framework for listening for mouse and keyboard input; theydon't do anything besides listen until you subclass them.



作者:屋顶之树
链接:https://www.jianshu.com/p/552f96aa85dc


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消