安装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()
异常 报错: :
m.click(x_dim/2, y_dim/2, 1)
改为
m.click(int(x_dim/2), int(y_dim/2), 1)
No module named 'windows
方案
pymouse时的文件,打开_init_.py文件(用记事本或者python编译软件)然后找到第92行的windows将其改写成 pymouse.windows