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
了