一个简单的跨平台鼠标和键盘控制模块

PyUserInput的Python项目详细描述


pyuserinput
==


python中用于跨平台控制鼠标和键盘的模块,使用简单。


但是用户应该注意到平台和应用程序之间可能存在差异

BR/>键盘控制工作在X11(Linux)和Windows系统上。mac控制是一项正在进行的工作。


依赖项
----



根据您的平台,您需要以下python模块才能运行
pyuserinput:

*linux-xlib
*mac-quartz,appkit
*windows-pywin32,pyhook

如何开始安装pyuserinput之后,pymouse和pykeyboard模块应该位于python路径中。让我们制作一个鼠标和键盘对象:

`` python


from pymouse import pymouse
from pykeyboard import pykeyboard

k=pykeyboard()
```

下面是一个单击屏幕中心并键入“你好,世界!”:

`` python

m.click(x戥dim/2,y戥dim/2,1)
k.type戥string('hello,world!')
````


>pykeyb键盘提供了一系列发送击键的方式:


```python

按一个键
k.按一个键('h')
k,然后按一个键
k.release_key('h')
k.release_key('h')
;或者,您可以“轻触”一个键,这两个键都可以同时按
k.tap_key('e')
;请注意,轻触“python”键可以同时按一个键


k.tap键('e')
;请注意,轻键确实支持一种重复的方式每次按键的间隔时间为
k.tap_key('l',n=2,interval=5)
,如果需要,还可以发送字符串
k.type_string('o world!')
```


and it supports a wide range of special keys:

```python

#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)轻触numpad上的5,三次
``


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

``python

mac example
k.按撸键(['command','shift','3'])
windows example
k.按撸键([k.windows撸l撸键,“d”])
```

平台之间的一致性是一个很大的挑战;请查看用于帮助理解需要发送的密钥格式的操作系统的源代码。例如:

`` python

除非你把他们分类,否则他们除了听什么都不做。我还在形式化
pykeyboardevent,下面是一个从pymouse import pymouseevent


``python



def fibo():
a=0
yield a
b=1
yield b
而true:
a,b=b,a+b
yield b

class clickonacci(pymouseevent):
自定义(<自我>):<(>):“单击”(自、x、y、按钮、按下):当“左击”按下时,请加上“斐波那契数字”。“如果按钮为:1”,则为:使用的其他鼠标按钮
self.stop()

c.run()
````


pyuserinput中捕获的预期功能
/>在实例化期间传递。如果通过了“capture=true”,则预期的结果是所有鼠标按钮输入都将转到您的程序而不是其他地方。
对于“capture_move=true”也是一样的,除了它处理鼠标指针的移动而不是按钮。两者可以同时设置,用于防止
事件进一步传播。如果您注意到此行为有任何错误,
请引起我们的注意。

同样适用于Mac)
*PyMouse动态增量滚动(Mac和Windows提供,难以标准化)
*与更多Mac开发人员交朋友,需要测试帮助…



许多感谢
----

[pepijn de vos](https://github.com/pepijndevos)-制作
[pymouse](https://github.com/pepijndevos/pymouse)并允许我修改
并将其与pykeyboard一起分发。

[jack grigg](https://github.com/pythonian4000)-感谢您的贡献在pymouse中跨平台滚动。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java只创建一次Springbean,即使多次调用也是如此   AmazonWeb服务如何在AWS工作区上运行Java代码而不使用键?   java Lwjgl安装错误   java从URL读取文本文件并输出到TextView   图论Java显示错误Java。lang.OutOfMemoryError   多线程Java多线程执行超过循环边界   java我怎样才能使这段代码只打印最终答案?   返回字符的Java方法抱怨没有返回字符。   java失败于ServiceSuccess方法?   mysql错误:java。util。ArrayList无法转换为java。串   Java解压在处理xlsx文件后退出   java在Windows Live服务中使用RestEasy时,如何解组返回的联系人列表?   java需要嵌套if的建议   java使用Set属性在JSP:UseBean中设置javascript变量值   java为什么在println时即使有值显示也会出现空指针异常?   任何使用系统的替代方案。在用Gradle构建的java控制台应用程序中?   使用泛型的方法的java单元测试   x509certificate在JAVA中如何将证书与CSR进行匹配