群皮最近很皮,想弄一些没啥卵用的东西,想记录键盘鼠标信息,例如鼠标点击坐标,鼠标移动轨迹,点击间隔,键盘按键,按键点击间隔等等,(不要小瞧了这些信息,可以利用数理统计和机器学习可以分析出你的使用习惯,并将有助于优化你的键鼠使用,可以为你在lol和吃鸡再加上一波骚操作)。以前用java以前弄过,什么鬼jar包已经记不住了。如今以后要开啥玩python和机器学习了,所以用py玩玩这个东西。

写在前面:由于毕设原因,电脑仍是windows系统,这也为开发造成了很多不便。https://github.com/tingtinglu/awesome-python-cn 是一个比较全的python资源列表。这里介绍了一种所谓的“跨平台的,优雅的”键盘鼠标开发模块:PyUserInput。官网为https://github.com/SavinaRoja/PyUserInput。然而实际并不如此,在Windows平台下,PyUserInput无可避办的依赖了其他模块:win32和pyHook。在底层设计上,此开源项目的开发已经停滞了,因为pyHook在sourceforge最新版本也只是支持py2.7版本,而且并不支持64位,这让群皮在配置环境方面浪费了很长时间。稍后给出我的配置教程。(群皮不得不又下了py2.7环境,成功达成了电脑内拥有双python版本成就,微笑脸)。

废话不多说,直接给出一段记录鼠标左键点击事件并计入数据库(SQLite)的代码,er,已经点击快300次了,那么估计一下我每天点击鼠标次数应该是1000次左右吧。

#! python2
import pyHook
from pymouse import PyMouseEvent
import os, sqlite3class Clickonacci(PyMouseEvent):def __init__(self):PyMouseEvent.__init__(self)def click(self, x, y, button, press):if button == 1:if press:print ("1")db_file = os.path.join('d:\py2.7', 'haha.db')conn = sqlite3.connect(db_file)cursor = conn.cursor()print(x,y)cursor.execute(r"insert into xy (x,y)  values ("+str(x)+","+str(y)+") ")cursor.close()conn.commit()conn.close()else:return def  move(self,x,y):print(x,y)  C = Clickonacci()
C.run()

这是目前记录的结果:

呃,贴完之后感觉没啥可以讲的,说一点自己的初学python理解吧,

1.self相当于java中的this指针,指代当前实例化对象。

2.python由于是解释形语言,相对于C++和Java 这种编译形语言来说更加轻巧敏捷,(当然人家py库也不少,年龄比java大的哈哈),所以很适合机器学习,让研究人员把主要的时间放在算法的设计和数据的分析上。

写在后面,下一阶段应该可以尝试一下可视化,形成类似于下面的效果图下下阶段我想采用的是利用这些数据跑一些刚学的分类聚类算法,哈哈毕竟是维度比较少。

数据可视化:

import os, sqlite3
import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)db_file = os.path.join('d:\py2.7', 'haha.db')
conn = sqlite3.connect(db_file)
cursor = conn.cursor()
# 执行查询语句:
cursor.execute('SELECT xy.x FROM xy')
x = cursor.fetchall()
cursor.execute('SELECT xy.y FROM xy')
y = cursor.fetchall()
'''y1 = list(y)y2 = tuple(y2)'''
cursor.close()
conn.close()
x1 = np.array(x)
x1 = list(x1)
y1 = np.array(y)
y2 = -y1
y2 = list(y2)
'''
y1 = list(y)
print (type(y1))
for i in range(len(y1)):y1[i] = 0 - int(str(y1[i]))'''
'''y1 = list(y)
y2 = np.zeros(len(y1)) - y1
x = np.array(x)
print (len(x),len(y2))'''
plt.scatter(x1,y2)
plt.show()

最终效果图

利用PyUserInput记录键盘鼠标事件信息相关推荐

  1. [转载]C#模拟键盘鼠标事件-SendKeys

    C#模拟键盘鼠标事件-SendKeys 2007-09-18 15:138596人阅读评论(1)收藏举报 1.模拟键盘事件 System.Windows.Forms.SendKeys以下是   Sen ...

  2. 模拟键盘鼠标事件有两种方法

    实现一个鼠标或者键盘模拟器,可以完成很多功能,比如做一个简单的游戏外挂^_^.通常,模拟键盘鼠标事件有两种方法: 1.keybd_event, mouse_event 2.SendMessage, P ...

  3. Python ctypes 调用API函数模拟键盘鼠标事件

    在Python编程中, 有时需要模拟键盘或鼠标事件, 自动操作计算机, 比如玩游戏等. 本文介绍使用ctypes模块调用API函数, 模拟键盘鼠标事件的方法. 目录 1.导入ctypes模块 2.通过 ...

  4. pynput 键盘鼠标事件抑制(拦截输出)

    pynput 键盘鼠标事件抑制 前言 最近想用pynput做一个键盘映射,但是遇到的了一些问题,键盘映射有时需要抑制原输出.本人在CSDN找了很久,但是发现没有相关的文章.在查找了官方文档,并做了一些 ...

  5. IMS:键盘鼠标事件

    IMS:键盘鼠标事件 android11-release IMS:键盘鼠标接入判断 键盘鼠标接入EventHub 可查看IMS:EventHub 设备添加和InputDevice转化.IMS:键盘鼠标 ...

  6. win32键盘输入python_windows下python捕捉键盘鼠标事件 pywin32 | 学步园

    最近学习python中, 需要调用gui的wincom组件,网上搜罗了很多相关资料.但是大部分资料都有问题.也许跟python的开源和版本问题有关. 下面我就把网上罗列出来最多的捕捉键盘鼠标事件的代码 ...

  7. Python记录键盘鼠标敲击次数

    Idea 作为一个每天有一半时间都在电脑旁的人,无时无刻不在敲击着键盘,点击着鼠标.有一天,我突然很想知道在一天的时间内,在我轻盈的指法下面,键盘被我狂敲了多少下,鼠标又被我点击了多少次.甚至更具体一 ...

  8. python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解

    引言 ----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl+a,Ctrl+v等. 举例: #cording= ...

  9. selenium使用篇_键盘鼠标事件

    大家好,我是bug郭,一名双非科班的在校大学生.对C/JAVA.数据结构.Spring系列框架.测试开发.Linux及MySql.算法等领域感兴趣,喜欢将所学知识写成博客记录下来. 希望该文章对你有所 ...

最新文章

  1. golang实现二叉搜索树
  2. SQL语句中的select高级用法
  3. 夏利车电动窗功能设定
  4. 图片不显示问题 图片url监测改变问题
  5. Qt工作笔记-在ListWidget中多线程检索数据
  6. OJ1041: 数列求和2(高阶递推)
  7. java获取系统dpi_java中如何获得打印机的dpi
  8. linux文件IO的操作
  9. Delphi高手突破学习笔记三
  10. 【转载】游戏并发编程的讨论 Nodejs并发性讨论 语法糖术语
  11. 5.ViewPage2使用及坑点解决
  12. 更换主板后 Win10 账户密钥集不存在 0x80090016问题解决
  13. 微型计算机结构五大,微型计算机的体系结构
  14. cpu虚拟化(cpu虚拟化开启有什么影响)
  15. Python爬虫-QQ音乐下载(详解)
  16. 互联网产品运营管理知识一网打尽
  17. pdf书籍资源共享_书籍和更多内容已获许可使用知识共享
  18. 【BAT】修改指定的文件名称为系统当前日期
  19. 图表嵌入到数据表格下方_如何在excel图表下方添加数据表 如何在excel图表中显示数值...
  20. 分布式秒杀 - 实战

热门文章

  1. el-menu,Collapse 折叠面板,收起后子菜单弹窗popover跟菜单的距离
  2. Bundle Adjustment (BA)简述
  3. 【日记本砸】21.06.21-30 在无能为力的事情面前跪下几次,才更想把握住可以把握的事
  4. 激发数学思维!一个烧脑的顶级数学纪录片《维度:数学漫步》完整版,带你漫步数学之美!时长125分,建议先马再看!看完从此爱上数学!
  5. 无奇不有 盘点各国自己开发的操作系统
  6. (附源码)计算机毕业设计Java基于的电商平台的设计与实现
  7. 机器学习中的数学ch11:基于高斯混合模型的密度估计(Density Estimation with Gaussian Mixture Models)
  8. 骁龙765g和麒麟9905g差别大不大 骁龙765g和麒麟990哪一个更好一点
  9. fence机制 linux_集群 Ricciluci Fence机制
  10. python中用pandas读写excel表格,根据关键字查找填表(类似vlookpup)