PyUserInput使用

2019-05-16  本文已影响0人  oopp8

PyUserInput

依赖

根据您的平台,您需要以下python模块才能运行PyUserInput:
Linux - Xlib(python-xlib)
Mac - Quartz,AppKit
Windows - pywin32,pyHook

安装

使用pip工具,直接安装

pip install PyUserInput

使用

安装PyUserInput后,你的python路径中应该有pymouse和pykeyboard模块。让我们制作一个鼠标和键盘对象:

from pymouse import PyMouse
from 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 key
k.press_key('H')
# which you then follow with a release of the key
k.release_key('H')
# or you can 'tap' a key which does both
k.tap_key('e')
# note that that tap_key does support a way of repeating keystrokes with a interval time between each
k.tap_key('l',n=2,interval=5) 
# and you can send a string if needed too
k.type_string('o World!')

它支持多种特殊键:

#Create an Alt+Tab combo
k.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 F5
k.tap_key(k.numpad_keys['Home'])  # Tap 'Home' on the numpad
k.tap_key(k.numpad_keys[5], n=3)  # Tap 5 on the numpad, thrice

请注意,您还可以使用press_keys方法一起发送多个击键(例如,在访问键盘快捷键时):

# Mac example
k.press_keys(['Command','shift','3'])
# Windows example
k.press_keys([k.windows_l_key,'d'])

平台之间的一致性是一个巨大的挑战; 请查看您正在使用的操作系统的源代码,以帮助您了解需要发送的密钥的格式。例如:

# Windows
k.tap_key(k.alt_key)
# Mac
k.tap_key('Alternate')

我想特别注意使用PyMouseEvent和PyKeyboardEvent。这些对象是用于监听鼠标和键盘输入的框架; 除了你的子类之外,他们除了听之外什么都不做。我还在形式化PyKeyboardEvent,所以这里是一个子类化PyMouseEvent的例子:

from pymouse import PyMouseEvent

def 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()

下面补充安装遇到的问题


安装出现问题检查依赖项,Windows重点是pyHook安装,见下文。


Windows安装问题

pywin32

使用pip工具,直接安装

pip install pywin32

或者Windows下载安装包安装。

pyHook

安装pyhook3的时候自己系统。下载地址 https://www.lfd.uci.edu/~gohlke/pythonlibs/

Windows x64 Python3.6

继续未完成的PyUserInput安装

下载下来直接安装好。


pip3 install R:\pyHook-1.5.1-cp36-cp36m-win_amd64.whl

两个都安装好了就可以继续安装PyUserInput

pip3 install PyUserInput
上一篇下一篇

猜你喜欢

热点阅读