美文网首页
PyUserInput使用

PyUserInput使用

作者: oopp8 | 来源:发表于2019-05-16 14:56 被阅读0次

    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

    相关文章

      网友评论

          本文标题:PyUserInput使用

          本文链接:https://www.haomeiwen.com/subject/rdriaqtx.html