看手工耿突发奇想,自己是否也能搞个有意义的脑残程序,于是想到自己能否也统计一下自己敲击键盘的内容?其实一直都有这个想法,今天终于实现这个小心思。网上搜了下已经有别人做过了。于是乎,借鉴了一些别人的程序,然后进行改造。最终大功告成。

task is cheap,

全部代码如下,可以直接复制粘贴跑起来:

# coding:utf-8

import datetime

import pyHook

import pythoncom

from time import *

result = ''

# 一个字典存取所有键值和按键的次数。

keyDict = {}

strDate = datetime.datetime.now().strftime('%y-%m-%d')

print(strDate)

def onMouseEvent(event):

# 监听鼠标

# 需要注意的是返回True,以便将事件传给其他的处理程序,如果返回False的话,鼠标事件在这里就会被拦截,即鼠标会僵在此处失去响应

return True

def onKeyboardEvent(event):

# 监听键盘事件

# 同鼠标事件监听函数的返回值

# 写一个保存到本地文件的方法,而且应该以写二进制的方式来写入,设置result为全局的,避免文件被覆盖

global result

# 以每天的日期为文件名称。

file = open(r'D:/{}.txt'.format(strDate), 'wb')

key = str(event.Key)

result = result + "Time : " + str(asctime())+"|:"+"WindowName:"+str( event.WindowName)+"|"+"Key:"+key+"|"+"MessageName:"+str( event.MessageName)

if key not in keyDict:

keyDict[key] = 1

else:

keyDict[key] = keyDict[key]+1

file.writelines(result)

if event.Key == "Escape":

file.close()

print('统计结果是 {}'.format(keyDict))

exit("统计结束!")

return True

def main():

# 设置为全局变量,以便存取按键及次数

global keyDict

# 创建一个:钩子“管理对象

hm = pyHook.HookManager()

# 监听所有的键盘事件

hm.KeyDown = onKeyboardEvent

#设置键盘”钩子“

hm.HookKeyboard()

# 监听鼠标事件

hm.mouseAll = onMouseEvent

# 设置鼠标钩子

hm.HookMouse()

# 进入循环侦听,需要手动进行关闭,否则程序将一直处于监听的状态。可以直接设置而空而使用默认值

pythoncom.PumpMessages()

if __name__ == "__main__":

main()

python 文件名.py

按Esc键会自动退出程序。

结果如下:

计结果是 {'A': 1, 'D': 1, 'F': 1, 'S': 9, 'Lshift': 1, 'Escape': 1}

统计结束!

可以看到S键敲击了9次,A键敲击了1次。 Esc键按了1次。

Over

python键盘键值表_Python怎么记录键盘鼠标敲击次数|Python统计鼠标点击次数 - PS下...相关推荐

  1. python监听键盘keyboard_python利用 keyboard 库记录键盘事件

    今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快.为此,需要记录下来击键的记录.于是找到了 python 的 keyboard 库. 安装非常简单,只需执行 pip install ...

  2. 键盘键和键盘键控制值一览表(键盘按键对应代码表)

    http://blog.csdn.net/sunxiaosunxiao/article/details/7067412 字母 A 到 Z 和标准数字 0 到 9 下表列出了标准键盘上字母 A 到 Z ...

  3. 键盘键和键盘键控制值一览表(键盘代码对应表)

    http://blog.csdn.net/sunxiaosunxiao/article/details/7067412 字母 A 到 Z 和标准数字 0 到 9 下表列出了标准键盘上字母 A 到 Z ...

  4. python方向键键值_python字典键值对的添加和遍历方法

    添加键值对 首先定义一个空字典 >>> dic={} 直接对字典中不存在的key进行赋值来添加 >>> dic['name']='zhangsan' >> ...

  5. python 聚类算法包_Python聚类算法之DBSACN实例分析 python怎么用sklearn包进行聚类

    python 怎么可视化聚类的结果 science 发表的聚类算法的python代码 测试数据长什...说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或None值引起的. 解决办法是把 ...

  6. python变量命名规则_Python教程第9篇:牢记Python变量命名5大规则

    上一节课我们通过几行代码来理解Python变量,不知道你都动手操作了吗?Python变量名不是随便乱起的哈,需要遵循以下规则:1.  只能字母.下划线开头,不能数字开头.变量用小写字母开头是 Pyth ...

  7. python大文件排序_Python如何实现大文件排序?Python大文件排序的实现方法

    Python如何实现大文件排序?Python大文件排序的实现方法 本文实例讲述了Python实现大文件排序的方法.分享给大家供大家参考.具体实现方法如下: import gzip import os ...

  8. python怎么算阶乘_python专家写阶乘 ()用python计算阶乘

    请编写一个程序实现分享n的阶乘(即n.),并打印输出结果.要分享包括两个函def little_than_50(x): if x 语言很多时候是假的,一起经历过的事情才是真的. 这个用python写的 ...

  9. python的dropna函数_Python学习教程:从Excel到Python最常用的32个Pandas函数(一)

    原标题:Python学习教程:从Excel到Python最常用的32个Pandas函数(一) 本次的Python学习教程涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据 ...

最新文章

  1. ATS中的RAM缓存简介
  2. RMSD:通过旋转计算两个分子间的最小rmsd
  3. 解决ThinkPHP关闭调试模式时报错的问题汇总
  4. (~解题报告~)L1-017 到底有多二 (15分)(16行代码AC)
  5. Marketing Cloud里取得系统contact数目的API
  6. 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
  7. Python教学视频(一)Python基础环境的安装
  8. 硬盘如何分区及分区注意事项
  9. js 移动端的表情包
  10. 开机出现grub rescue,修复办法
  11. 我的世界服务器总是显示错误,win 10 进mc服务器总是错误 怎么办
  12. 通过python调用海康威视工业摄像头并进行图像存储,同时使用opencv实时图像显示(数据流问题已解决)
  13. 【解释比较形象好理解】你稀里糊涂学的算法复杂度,原来这么简单!
  14. php不显示notice,解决PHP显示Warning和Notice等问题
  15. 计算机网络:P4.3-网络层(下)
  16. Switch游戏机Type-C底座方案
  17. vim 安装插件及常用插件
  18. SQL语句的强大综合集锦
  19. 百度 2022 提前批-数据挖掘算法工程师面经
  20. 【Visual c++】+【EasyX】游戏组件1 移动的小人

热门文章

  1. 【selenium实例一】网易云歌单封面图片
  2. 2022不一样的分享--行走的皮卡丘
  3. css内行样式、外部样式、内部样式
  4. css3 性能优化之 will-change 属性
  5. FT232驱动安装不成功的解决方案
  6. x264源代码简单分析 编码器主干部分-1
  7. 微信小程序开发初学:图片组件 - image
  8. ORA-01031:insufficient privileges 解决方法
  9. flink jdbc connector支持clickhouse
  10. vtk医学图形提取骨骼模型的算法思路