Python插件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(int(x_dim/2), int(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()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址