博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Python监听邻居家小姐姐的上网行为
阅读量:7088 次
发布时间:2019-06-28

本文共 2447 字,大约阅读时间需要 8 分钟。

  hot3.png

小姐姐 关注公众号:「Python专栏」,后台回复「小姐姐」,获取全套代码!!!

Python专栏二维码

还记得曾经为了刷大话西游而下载了按键精灵,然后论坛上搜了各种分辨率的脚本么?

还记得春节为了刷回家的高铁票,自己写了按键精灵的脚本么?

现在python有一个神奇的库,我们不用再去模拟复杂的按键精灵了!监控鼠标、键盘,甚至是……

pynput这个库让你可以控制和监控输入设备。

对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:

pynput.mouse:包含控制和监控鼠标或者触摸板的类。

pynput.keyboard:包含控制和监控键盘的类。

上面提到的子包都已被引入到pynput库中。要使用上面的子包,从pynput中引入即可。

from pynput import mouse, keyboard

接下来就跟着小胖一起来看下如何玩转鼠标和键盘吧。

1. 控制鼠标

使用pynput.mouse控制鼠标

from pynput.mouse import Controller, Buttonmouse = Controller()# 获取当前鼠标位置print(f'当前小胖的鼠标位置是: {mouse.position}')# 设置鼠标位置mouse.position = (10, 20)print(f'现在小胖把鼠标移动到 {mouse.position}')# 使用相对距离,移动当前鼠标mouse.move(5, -5)# 按下鼠标左键,释放鼠标左键mouse.press(Button.left)mouse.release(Button.left)# 向下滚动2格mouse.scroll(0, 2)

效果如图

python

2. 监控鼠标事件

使用pynput.mouse.Listener监控鼠标事件

from pynput import mousedef on_move(x, y):   print(f'鼠标移动到坐标 {(x, y)}')def on_click(x, y, button, pressed):   print(f"{'按下' if pressed else '释放'} ,当前位置是: {(x, y)}")   if not pressed:       # 停止监听       return Falsedef on_scroll(x, y, dx, dy):   print(f"滑动鼠标, {'向下' if dy < 0 else '向上'} at {(x, y)}")# 一直监听事件,直到鼠标释放with mouse.Listener(       on_move=on_move,       on_click=on_click,       on_scroll=on_scroll) as listener:   listener.join()

效果如图

python 鼠标事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。

调用pynput.mouse.Listener.stop,发起StopException异常,或者回调函数中返回False都会停止事件的监听。

3. 控制键盘

使用pynput.keyboard.Controller控制键盘

from pynput.keyboard import Key, Controllerkeyboard = Controller()# 按下并释放空格keyboard.press(Key.space)keyboard.release(Key.space)# 按下并释放小写字母akeyboard.press('a')keyboard.release('a')# 2种方式输入大写Akeyboard.press('A')keyboard.release('A')with keyboard.pressed(Key.shift):   keyboard.press('a')   keyboard.release('a')# 直接操作键盘输入Hello Worldkeyboard.type('Hello World')

4. 监控键盘事件

使用pynput.keyboard.Listener监听键盘事件

from pynput import keyboarddef on_press(key):   try:       print(f'字母 {key.char} 被按下了')   except AttributeError:       print(f'特殊的键 {key} 被按下了')def on_release(key):   print(f'{key} 被释放了')   if key == keyboard.Key.esc:       # 停止监听       return False# 一直监听键盘事件,直到停止with keyboard.Listener(       on_press=on_press,       on_release=on_release) as listener:   listener.join()

键盘事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。

调用pynput.keyboard.Listener.stop,发起StopException异常,或者回调函数中返回False都会停止事件的监听。

传递给回调函数的key参数是一个pynput.keyboard.Key类的实例。当特殊按键和普通按键一起按下时,数字字母按键的值会被放置在pynput.keyboard.KeyCode类的实例中,对于不知道的按键会返回None。

接下来就是发挥你们能力的时候了,说不定写个脚本,用exe包装一下,命名为种子收发器?哈哈哈哈,然后就可以监听起来了?

转载于:https://my.oschina.net/u/1778027/blog/3022732

你可能感兴趣的文章
[C++基础]007_char、wchar_t、wcout、setlocale()
查看>>
Java纯POJO类反射到Redis,反射到MySQL
查看>>
Localization native development region 设置属性(转)
查看>>
springboot将项目源代码打包
查看>>
Python必会的单元测试框架 —— unittest
查看>>
CentOS 7配置MariaDB允许指定IP远程连接数据库
查看>>
计算机基础——指令与程序
查看>>
jeecg查询条件组装器使用or关键字
查看>>
用三段 140 字符以内的代码生成一张 1024×1024 的图片<转载>
查看>>
HTML CSS
查看>>
关于博客园主题的说明
查看>>
秦涛:深度学习的五个挑战和其解决方案
查看>>
13 个最佳 JavaScript 数据网格库
查看>>
python 之format字符串格式化
查看>>
struts2中s:iterator的使用(2个list嵌套循环)
查看>>
css3 放大缩小代码
查看>>
sqlserver存储过程中SELECT 与 SET 对变量赋值的区别
查看>>
【分享】开源富文本编辑器之间的较量
查看>>
Pythoner.CN: 从百万到十亿PV:Reddit的25条宝贵经验 | Pythoner.CN
查看>>
第七周作业
查看>>