精华内容
下载资源
问答
  • View Code1 #-*- coding: utf-8 -*-2 #3 # by oldj4 # http://oldj.net/5 #67 import pythoncom8 import pyHook910 def onMouseEvent(event):11 # 监听鼠标事件12 print "MessageName:", event.MessageName13 pri...

    ContractedBlock.gif

    ExpandedBlockStart.gifView Code

    1 #-*- coding: utf-8 -*-

    2 #

    3 # by oldj

    4 # http://oldj.net/

    5 #

    6

    7 import pythoncom

    8 import pyHook

    9

    10 def onMouseEvent(event):

    11 # 监听鼠标事件

    12 print "MessageName:", event.MessageName

    13 print "Message:", event.Message

    14 print "Time:", event.Time

    15 print "Window:", event.Window

    16 print "WindowName:", event.WindowName

    17 print "Position:", event.Position

    18 print "Wheel:", event.Wheel

    19 print "Injected:", event.Injected

    20 print "---"

    21

    22 # 返回 True 以便将事件传给其它处理程序

    23 # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截

    24 # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了

    25 return True

    26

    27 def onKeyboardEvent(event):

    28 # 监听键盘事件

    29 print "MessageName:", event.MessageName

    30 print "Message:", event.Message

    31 print "Time:", event.Time

    32 print "Window:", event.Window

    33 print "WindowName:", event.WindowName

    34 print "Ascii:", event.Ascii, chr(event.Ascii)

    35 print "Key:", event.Key

    36 print "KeyID:", event.KeyID

    37 print "ScanCode:", event.ScanCode

    38 print "Extended:", event.Extended

    39 print "Injected:", event.Injected

    40 print "Alt", event.Alt

    41 print "Transition", event.Transition

    42 print "---"

    43

    44 # 同鼠标事件监听函数的返回值

    45 return True

    46

    47 def main():

    48 # 创建一个“钩子”管理对象

    49 hm = pyHook.HookManager()

    50

    51 # 监听所有键盘事件

    52 hm.KeyDown = onKeyboardEvent

    53 # 设置键盘“钩子”

    54 hm.HookKeyboard()

    55

    56 # 监听所有鼠标事件

    57 hm.MouseAll = onMouseEvent

    58 # 设置鼠标“钩子”

    59 hm.HookMouse()

    60

    61 # 进入循环,如不手动关闭,程序将一直处于监听状态

    62 pythoncom.PumpMessages()

    63

    64 if __name__ == "__main__":

    65 main()

    为了满足工具的需求,在脚本里面写了两个线程,一个线程用来发ping包,处理ping的结果数据,而另一个则是实时监控键盘的输入,一旦键盘在当前窗口输入任意字符串,则停止程序,不再发ping包,也不再记录数据,从而记录所有已记录的ping数据的总值,次数以及平均值,之前是满足需求的,但是思考之后,每次在游戏开始的时候,要切换窗口,然后执行程序,想要停止程序的时候,又要切换窗口出去,在程序窗口输入任意值,停止程序,确实很不方便,而且在Win7下,由于兼容性的问题,CF不能窗口化,全屏切换出去又比较卡,经常游戏会未响应,并且需求是要在测试CF游戏的时候,不仅仅是记录实时的ping值,更需要在某个特定的用户觉得卡的那个点,通过某种方式进行捕捉,这就需要监控到键盘的消息,而不是仅仅只是监控当前窗口的输入之类的。

    在网上查找资料的时候,找到了一个很好的方法,pyhook这个库,并且还提供了相当封装好的方法,直接调用便可拿到你键盘,或者是鼠标的输入,“钩子”的方式着实是非常强大的,贴上代码,这段代码仅仅只是网上的一段引用,测试过确实是可行的,但是中间存在一点小插曲

    本机安装的是python 2.7的版本,应该属于比较大众的版本,但是这个版本安装了并不会立即就支持pyhook这个库,应该说,没有集成pyhook这个库,这个库是基于另一个库pywin32的,可能是考虑这两个库的平台局限性,只能在windows上使用,所以才没有直接集成到python的安装中

    最开始没有考虑到这个库不存在,因为这段代码执行的时候,报的错误是没有“pythoncom”这个库,在网上搜了很久,发现没有任何的关于这个的解决,但是com明显是基于win32的,所以抱着试一试的心态,我决定先把pywin32这个库给安装了,然后pyhook库也安装了,果然,安装之后就全部OK了。

    展开全文
  • #coding=utf-import pyHookimport pythoncom# 监听到鼠标事件调用def onMouseEvent(event):if(event.MessageName!="mouse move"):# 因为鼠标一动就会有很多mouse move,所以把这个过滤下print(event.MessageName)...

    #coding=utf-

    import pyHook

    import pythoncom

    # 监听到鼠标事件调用

    def onMouseEvent(event):

    if(event.MessageName!="mouse move"):# 因为鼠标一动就会有很多mouse move,所以把这个过滤下

    print(event.MessageName)

    return True # 为True才会正常调用,如果为False的话,此次事件被拦截

    # 监听到键盘事件调用

    def onKeyboardEvent(event):

    print(event.Key)# 返回按下的键

    return True

    def main():

    # 创建管理器

    hm = pyHook.HookManager()

    # 监听键盘

    hm.KeyDown = onKeyboardEvent

    hm.HookKeyboard()

    # 监听鼠标

    #hm.MouseAll = onMouseEvent

    #hm.HookMouse()

    # 循环监听

    pythoncom.PumpMessages()

    if __name__ == "__main__":

    main()

    效果

    还可以监听鼠标的!!!

    python 监听键盘事件

    #coding=utf- from tkinter import * root=Tk() def callback(event): print("点击键盘",repr(event. ...

    一、python小功能记录——监听键盘事件

    1.监听键盘按键 from pynput.keyboard import Listener def press(key): print(key.char) with Listener(on_press ...

    js监听键盘事件

    用JS监听键盘按下事件(keydown event)   1.监听全局键盘按下事件,例如监听全局回车事件 1 $(document).keydown(function(event){ 2 if(eve ...

    vue如何监听键盘事件中的按键?

    展开全文
  • python实现键盘监听

    万次阅读 2019-07-10 17:29:53
    这里来展示一个比较有意思的python功能模块:pynput,这个模块里面有关于鼠标和键盘的一些操作,这里给大家分享的是监听键盘操作。 安装 pip install pynput # conda or py3 程序功能介绍 【####这个程序没有调试...
    这里来展示一个比较有意思的python功能模块:pynput,这个模块里面有关于鼠标和键盘的一些操作,这里给大家分享的是监听键盘操作。
    

    安装

    pip install pynput # conda or py3
    

    程序功能介绍

    【####这个程序没有调试好,但是监听部分可以用,另外关于一些值得获取要改正下,因为这里直接让结果给打印出来了,其实还可以做一系列细致的统计####】

    这个程序是为了实现监听键盘操作,记录键盘输入的值,获取
    1 击键行为特征:
    第一个键释放到第二个键按下的时间
    第一个键按下到第二个键释放的时间
    按下一个键盘到释放的时间
    2 停顿特征:
    停顿是两次敲击键盘是时间差超过规定的停顿阈限,根据已有的研究,这里将停顿阈限定为 2s。本文提取停顿次数、最长停顿、停顿位置等特征。

    样例程序

    # -*- coding: utf-8 -*-ahello world
    import sys, os
    from pynput.keyboard import Controller, Key, Listener
    from pynput import keyboard
    import time
    # from tkinter import *
    
    start=time.time()
    end=time.time()
    fun_start=0
    time_interval=0
    index=0
    dict={'interval_times':0,'max_interval':0.,'interval_location':[]}
    count=0
    count_dict={'first_time':0.,'first_p_to_second_r':0.}
    keyBoard_dict={'Key.enter':'\n',
                   'Key.space':' ',
                   "Key.tab":'\t'}
    #比较按键生成的两个txt文件,这里主要是为了实现当退格键按下后,
    #对比退格前后文本的差异,这里可以自己延伸
    def com_str(path, file1, file2):
        path1 = os.path.join(path, file1)
        path2 = os.path.join(path, file2)
        with open(path1, 'r', encoding='utf-8') as f:
            file1 = f.readlines()
        content1 = [str.strip().split() for str in file1]
        with open(path2, 'r', encoding='utf-8') as f:
            file2 = f.readlines()
        content2 = [str.strip().split() for str in file2]
        #print("content1:", content1)
        #print("content2:", content2)
        str1 = []
        str2 = []
        for sub_list in content1:
            str1.extend(sub_list)
        for sub_list in content2:
            str2.extend(sub_list)
       # print("the str1:", str1, "the length:", len(str1))
        #print("the str2:", str2, "the length:", len(str2))
        origanl_len = len(str1)
        print("extend", origanl_len)
        if len(str1) > len(str2):
            str2.extend([' '] * (len(str1) - len(str2)))
        elif len(str1) < len(str2):
            str1.extend([' '] * (len(str2) - len(str1)))
        index = 0
        indexs = []
        count = 0
        for i, j in zip(str1, str2):
            if i != j:
                indexs.append(index)
                count += 1
                if index < origanl_len - 1:
                    print("the before...")
                else:
                    print("the after...")
            index += 1
        if count == 1:
            print("single...")
        elif count>1:
            print("the sentence...")
    #得到键入的值
    def get_key_name(key):
        if isinstance(key, keyboard.KeyCode):
            with open(r'C:\Users\admin\Desktop\key_record.txt','a',encoding='utf-8') as f:
                f.write(key.char)
            with open(r'C:\Users\admin\Desktop\key_record1.txt','a',encoding='utf-8') as f:
                f.write(key.char)
            return key.char
        else:
            if str(key) in ['Key.enter','Key.space','Key.tab']:
                with open(r'C:\Users\admin\Desktop\key_record.txt', 'a',encoding='utf-8') as f:
                    f.write(keyBoard_dict[str(key)])
                with open(r'C:\Users\admin\Desktop\key_record1.txt', 'a',encoding='utf-8') as f:
                    f.write(keyBoard_dict[str(key)])
            if str(key) in ['Key.backspace']:
                com_str(r'C:\Users\admin\Desktop','key_record.txt','key_record1.txt')
            return str(key)
    # 监听按压
    def on_press(key):
        global fun_start,time_interval,index,dict,count,count_dict
        fun_start = time.time()
        if count == 0:
            count_dict['first_time'] = fun_start
        if index == 0 or index == 1:
            time_interval = fun_start - start
            if index == 1 and time_interval > 2.:
                #停顿位置
                dict["interval_location"].append(key)
                #停顿次数
                dict['interval_times'] += 1
                #最长停顿
                dict['max_interval'] = time_interval if time_interval > dict['max_interval'] else dict['max_interval']
        index += 1
    
        print("正在按压:", get_key_name(key))
    
    # 监听释放
    def on_release(key):
        global start,fun_start, time_interval, index,count,count_dict
        count+=1
        if count==2:
            #第一个键按下到第二个键释放的时间
            count_dict['first_p_to_second_r']=time.time()-count_dict['first_time']
            count=0
        #按下一个键盘到释放的时间
        print("the interval between first press and release:",
              time.time() - start-time_interval)
        start = time.time()
        index = 1
        print("已经释放:", get_key_name(key))
        if key == Key.esc:
            # 停止监听
            return False
    
    # 开始监听
    def start_listen():
        with Listener(on_press=on_press, on_release=on_release) as listener:
            listener.join()
    
    if __name__ == '__main__':
        # 开始监听,按esc退出监听
        start_listen()
        print(dict)
    
    展开全文
  • pynput是监听、操控鼠标和键盘的跨平台第三方python库。你可以通过pip insnall pynput来安装。安装时会自动下载依赖库。接下来我会按“鼠标按键”“监听鼠标”“控制鼠标”,“键盘按键”“监听键盘”“控制键盘”的...

    § 0.0.0 前言

    监听、操作鼠标、键盘是实现自动化的捷径,比如我实现自动化签到用到了模拟键盘操作。

    pynput是监听、操控鼠标和键盘的跨平台第三方python库。

    你可以通过pip insnall pynput来安装。安装时会自动下载依赖库。

    接下来我会按

    “鼠标按键”“监听鼠标”“控制鼠标”,“键盘按键”“监听键盘”“控制键盘”

    的顺序介绍它的用法。

    以下为正文。

    §1.0.0 鼠标按键

    鼠标的按键在pynput.mouse.Button中,

    有lift、right、middle还有unknown四种。

    每一个按键都有两个有意义的属性:name和value。

    name是该按键的名称,比如 Button.left.name == 'left';

    value是记录上一次点击位置的元组。

    §1.1.0 监听鼠标

    有两种方法,一种是函数式、非阻塞型,另一种是语句式、阻塞型。

    先说第一种,这种是常见的教程所说的方法。

    §1.1.1 pynput.mouse.Listener

    以下是官网的说明示例:

    import pynput, time

    def on_move(x, y):

    print('Pointer moved to {0}'.format((x, y)))

    def on_click(x, y, button, pressed):

    print('{0} at {1}'.format(

    'Pressed' if pressed else 'Released',

    (x, y)))

    if not pressed:

    # Stop listener

    return False

    def on_scroll(x, y, dx, dy):

    print('Scrolled {0} at {1}'.format(

    'down' if dy < 0 else 'up',

    (x, y)))

    # Collect events until released

    with pynput.mouse.Listener(

    on_move=on_move,

    on_click=on_click,

    on_scroll=on_scroll) as listener:

    listener.join()

    运行这段代码时,移动鼠标会显示其坐标,

    按下鼠标按键并松开后,程序结束。

    当三个函数任意一个返回False((还有就是释放Exception或继承自Exception的异常)时,就会结束进程。

    可以用listener.start()和listener.stop()代替with语句。

    §1.1.2 pynput.mouse.Events

    个人认为,这个方法比上一个更直观。

    import pynput

    with pynput.mouse.Events() as event:

    for i in event:

    #迭代用法。

    if isinstance(i, pynput.mouse.Events.Move):

    #鼠标移动事件。

    print(i.x, i.y)

    #不要直接打印`i`,模块这里有问题,会报错。

    elif isinstance(i, pynput.mouse.Events.Click):

    #鼠标点击事件。

    print(i.x, i.y, i.button, i.pressed)

    #这个i.button就是上文所说的“鼠标按键”中的一个,用is语句判断即可。

    elif isinstance(i, pynput.mouse.Events.Scroll):

    #鼠标滚轮。

    print(i.x, i.y, i.dx, i.dy)

    break

    i = event.get(1)

    #另一种用法。

    #默认值是None。

    #这个`1`就是最长等待时间,超过这个时间没有事件,

    #就会报错。错误类型是queue模块的Empty,而非TimeoutError。

    §1.2.0 控制鼠标

    § 1.2.1

    先执行pynput.mouse.Controller()获取控件。

    以下方法都是该控件的所属方法。

    如下:

    import pynput

    ctr = pynput.mouse.Controller()

    § 1.2.2

    动态属性position返回鼠标位置坐标的元组(像这样: (x, y) ),

    通过定义来改变鼠标位置,比如ctr.position = (500, 500)。

    § 1.2.3

    当然,也有move方法,用于移动鼠标,

    用法是ctr.move(dx, dy)。

    § 1.2.4

    使用方法click进行模拟点击,需提供点击的按钮,

    按钮在pynput.mouse.Button里,有left、right和middle。

    还有可选参数count,是点击次数,默认为1。

    示例:

    import pynput

    ctr = pynput.mouse.Controller()

    ctr.click(pynput.mouse.Button.left)

    #左键单击。

    ctr.click(pynput.mouse.Button.left, 2)

    #左键双击。

    ctr.click(pynput.mouse.Button.right)

    #右键单击。

    § 1.2.5

    使用press(button)按下button键;

    方法release(button)释放键,如果操作时按键并没有被按下,也不会报错。

    示例:

    import pynput

    ctr = pynput.mouse.Controller()

    ctr.press(pynput.mouse.Button.left)

    #按下左键。

    ctr.move(50, 0)

    #右移50单位。

    ctr.move(0, 50)

    #下移50单位。

    ctr.release(pynput.mouse.Button.left)

    #释放左键。

    § 1.2.6

    模拟滚轮,使用的方法是scroll,提供参数dx和dy。

    例:

    import pynput

    ctr = pynput.mouse.Controller()

    ctr.scroll(0, 50)

    #向上滚动50单位。

    ctr.scroll(0, -50)

    #向下滚动50单位。

    以上是鼠标操作,

    以下是键盘操作。

    § 2.0.0 键盘按键

    键盘的按键获取比鼠标的麻烦些,但是没有鼠标用得多。

    因此我先说给常用的使用方法,再说获取。

    § 2.0.1 使用方法

    首先,当获取事件后,要判断按键是“特殊按键”还是“普通按键”,

    需判断其是否具有name属性,有则是特殊按键。

    这个属性记录属性的名称,比如ctrl对应着'ctrl'、'ctrl_l'或是'ctrl_r'。

    普通按键中,取而代之的是.char。

    注:大写字母与小写字母有不同的按键。

    还有其他功能。这里就不多说了。

    § 2.0.2 获取

    首先,特殊按键在pynput.keyboard.Key“模块”中可以直接找到。

    比如ctrl对应pynput.keyboard.Key.ctrl还有.ctrl_l以及.ctrl_r。

    然后,普通按键可以通过pynput.keyboard.KeyCode.from_char取得(特殊按键不可以,使用时会出现ArgumentError)。

    如a可以运行pynput.keyboard.KeyCode.from_char('a')获得。

    二者都可以用pynput.keyboard.KeyCode.from_vk通过按键的映射码取得。

    § 2.1.0 监听键盘

    主要有两种方法,类似于鼠标的,我的讲述顺序同前文。

    还有一种是对Listener的封装,用于快捷键,我放在最后一个说。

    § 2.1.1 pynput.keyboard.Listener

    注:如果你只想关注个别按键而非所有事件,可以使用GlobalHotKeys。我会在后文说。

    官网示例:

    from pynput import keyboard

    def on_press(key):

    '按下按键时执行。'

    try:

    print('alphanumeric key {0} pressed'.format(

    key.char))

    except AttributeError:

    print('special key {0} pressed'.format(

    key))

    #通过属性判断按键类型。

    def on_release(key):

    '松开按键时执行。'

    print('{0} released'.format(

    key))

    if key == keyboard.Key.esc:

    # Stop listener

    return False

    # Collect events until released

    with keyboard.Listener(

    on_press=on_press,

    on_release=on_release) as listener:

    listener.join()

    当两个函数中任意一个返回False(还有就是释放Exception或继承自Exception的异常)时,就会结束进程。

    可以用listener.start()和listener.stop()代替with语句。

    § 2.1.2 pynput.keyboard.Events

    import pynput

    with pynput.keyboard.Events() as event:

    for i in event:

    #迭代用法。

    key_event = i

    break

    key_event = event.get()

    #get用法。

    #可以提供一个实数作为最长等待时间(单位秒),超过这个时间没有事件,

    #就会报错。错误类型是queue模块的Empty,而非TimeoutError。

    #判断事件情况:

    if isinstance(key_event, pynput.keyboard.Events.Press):

    print('按下按键', end = '')

    elif isinstance(key_event, pynput.keyboard.Events.Release):

    print('松开按键', end = '')

    #判断按键:

    #*这个事件的`key`属性*对应才是*Listener方法获得的按键`'key'`*。

    try:

    print(key_event.key.name)

    except AttributeError:

    #说明这个是普通按键。

    print(key_event.key.char)

    else:

    #两种判断方式,第一种是我自创的,第二种是官网上的。

    if (key_event.key.name).startswith('ctrl'):

    #通过名称判断。

    print('发生了ctrl键事件。')

    elif key_event.key is pynput.keyboard.Key.esc:

    print('发生了esc键事件。')

    § 2.1.3 pynput.keyboard.GlobalHotKeys

    (还有'pynput.keyboard.HotKey'可以实现相似功能,但很麻烦)

    官网示例,esc那个是我写的。

    from pynput import keyboard

    def on_activate_h():

    print('++h pressed')

    def on_activate_i():

    print('++i pressed')

    def esc():

    print(' pressed')

    return False

    def esc_shift():

    print('+ pressed')

    raise Exception

    with keyboard.GlobalHotKeys({

    '++h': on_activate_h,

    '++i': on_activate_i,

    '': esc,

    '+': esc_shift}) as h:

    h.join()

    当按下esc键时,函数被触发,但运行未停止。

    观察源码,发现虽然该类继承自Listener,但会对执行的函数有封装,封装后只返回None。

    所以无法通过return False结束进程。

    设置单个普通按键(比如“a”)也是可以的。

    不能分辨按键顺序如“+a”与“a+”。

    § 2.2.0 控制键盘

    § 2.2.1

    先获取控件 :ctr = pynput.keyboard.Controller()。

    以下所说的方法均是指该控件的方法。

    § 2.2.2

    通过方法press来按下按键,

    你需要提供一个“长度为1的字符”或是“前文所说的按键对象”。

    温馨提示,此方法测试有风险,如果发现电脑打字、操作异常,

    很可能是因为模拟按下了某个键未松开。

    可以重启控制台或电脑。

    § 2.2.3

    通过release释放按键,

    和press方法一样,需要提供一个“长度为1的字符”或是“前文所说的按键对象”。

    示例:

    '''

    这段程序会按“下ctrl+shilf+s”快捷键,停顿3秒后按下esc键。

    简单模拟了“另存为”操作。

    '''

    import pynput, time

    ctr = pynput.keyboard.Controller()

    ctr.press(pynput.keyboard.KeyCode.from_vk(17))

    #通过按键的映射码 按下ctrl键。

    ctr.press(pynput.keyboard.Key.shift)

    #通过按键对象 按下shift键。

    ctr.press('s')

    #通过长度为1的字符 按下s键。

    #扫尾,释放刚才按下的键。后面我会说更简单、优雅的办法。

    ctr.release(pynput.keyboard.Key.ctrl)

    ctr.release(pynput.keyboard.Key.shift)

    ctr.release('s')

    time.sleep(0.3)

    ctr.press(pynput.keyboard.Key.esc)

    ctr.release(pynput.keyboard.Key.esc)

    § 2.2.4

    pressed方法就是我说的“更简单、优雅”的方法。

    使用时提供要按下的键,再用with语句“封装”上。

    效果是进入语句块时顺序按下提供按键,退出语句块时逆序释放按键。

    如下:

    import pynput, time

    ctr = pynput.keyboard.Controller()

    with ctr.pressed(

    pynput.keyboard.Key.ctrl,

    pynput.keyboard.Key.shift,

    's'):

    pass

    time.sleep(0.3)

    with ctr.pressed(pynput.keyboard.Key.esc):

    pass

    § 2.2.5

    type在英语中除了“类型”还有“打字”之意。

    该方法接收字符串,然后打出每个字符。

    据测试,向它提供一个“按键列表”也可以正常使用。

    例:

    import pynput

    ctr = pynput.keyboard.Controller()

    ctr.type('Hello world!')

    ctr.type([pynput.keyboard.Key.esc])

    #按下esc再松开。

    以上是正文。

    一些建议

    该模块鼠标、键盘的监听操作均由多线程实现。

    所以,可以利用多线程共享内存的特征编程;二要注意不要频繁启动监听,这样对系统开支极大。

    还有就是对鼠标位置监听要求不是很高时(比如实时向用户显示鼠标位置),可以每次循环sleep一下。

    如果向Listener提供的函数会执行很久(比如含有sleep),会导致电脑变卡。

    闲谈

    之前和别人聊天,他说他在不需要时把电脑的麦拔下来、摄像头挡上。

    我说用Fn快捷键禁掉麦克风更方便。

    现在想想,黑客可以通过模拟按键解禁麦克风啊。

    虽然这个模块没有Fn键,但别的呢?

    最后

    这份算是最全的了。原创不易,纯手打。

    转载请注明作者和链接哦。

    感谢阅读!

    展开全文
  • Python键盘监听+多线程

    2021-09-22 14:55:48
    __author__ = 'tjt' # bin import datetime import threading ...event = threading.Event() # 实例化事件 time_map = { 'start_time': 0.0, 'end_time': 0.0, 'total_time': 0.0, 'odd_even': .
  • Python 技术篇-pyHook键盘鼠标监听事件,监测鼠标键盘按键实例演示 键盘鼠标监听事件。 本来很简单的东西,网上很多文章一堆东西甩在哪,很难看懂,让人感觉有多难。学东西就是要一步一步的来,咱们先入门,然后再去...
  • 使用pyHook可以实现检测键盘的每个按键,并区分左右Ctrl、shift、win等,以及区分主键盘数字和小键盘数字等。 本来很简单的东西,网上很多文章一堆东西甩在哪,很难看懂,让人感觉有多难。其实就这么简单的几行就...
  • 本文实例为大家分享了python hook监听事件的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*- ## by oldj http://oldj.net/ #import pythoncomimport pyHookdef onMouseEvent(event):# 监听鼠标事件print...
  • Python监听鼠标和键盘事件

    千次阅读 2021-01-11 18:50:38
    PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。关于...
  • Python 键盘鼠标监听

    2020-12-07 13:10:51
    异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的API就可以了。下面是我在使用pyHook 的过程中遇到的...
  • 今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快。为此,需要记录下来击键...键盘事件录制保存并执行如下代码import keyboardimport timekeyboard.hook(lambda e: print(e, time.clock()))k...
  • 本文以一段简单的监听鼠标、键盘事件的程序,实现获取用户的输入(比如登录某些网站的账号、密码)的功能。经测试,对于一台“裸奔”的电脑,完全能获取到用户输入的任何信息;但是如果安装了杀毒软件,就够呛了。...
  • python3 监听键盘

    千次阅读 2019-04-06 16:42:51
    先安装pynput ...# 监听键盘按键 with keyboard.Listener(on_press=on_press,on_release=on_release) as listener: listener.join() 参考: https://www.jianshu.com/p/03010ac70e4c    
  • 我们可以利用windows提供的api函数来实现对系统键盘事件和鼠标事件监听,主要利用的是SetWindowsHookEx函数,这个函数可以允许调用者传入一个钩子函数也叫回调函数,当指定的事件发生时,你 传入的函数就会被触发...
  • 主要介绍了python如何使用 keyboard 录制键盘事件,帮助大家提高工作效率,感兴趣的朋友可以了解下
  • python如何监听键盘

    2021-02-26 23:28:07
    第三步设置多线程监听分别监听按下键盘和松开键盘的值,声明全局变量记录每一次键盘值转化成str类型release里面是松开后执行写入一个txt文本记录你按下的键盘值 第四步创建监听线程用于监听键盘 这在留下一个小插曲...
  • 很多时候只是要暂停一下或只想关闭监听,并不想把程序关闭。但是网上搜了半天,没有找到,然后自己就去翻了翻源码,发现了。开启监听是:HookMouse()和HookKeyboard()暂停监听是:UnhookMouse()和UnhookKeyboard()给...
  • 目录1.完整代码2.测试结果3.类的补充(TODO)4.如有疑惑请直接评论或发邮箱 1.完整代码 简单介绍:   1.响应事件 ...连续按下ppppp触发默认事件关闭监听   2.关于初始化参数   
  • 键盘监听需要用到keyboard模块(pip install keyboard)按键字符#字符'1''a'...#控制'ctrl''alt''shift''enter''esc''f1'...#方向键'up''down''left''right'#组合按键'ctrl'+'alt'+'a'...常用方法wait()监听按键,如果...
  • 停止键盘监听"""UnhookWindowsHookEx(keyboard_hd)defmouse_pro(nCode, wParam, lParam):"""函数功能:鼠标钩子函数,当有鼠标事件,此函数被回调""" if nCode ==win32con.HC_ACTION: MSLLHOOKSTRUCT_p=POINTER...
  • Python2.7,PyQt4,实现键盘监听事件

    千次阅读 2017-11-12 16:55:41
    Python2.7,PyQt4,实现键盘监听事件 完整代码如下: # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui import sys from PyQt4.QtCore import * try: _fromUtf8 = QtCore.QString.fromUtf8 ...
  • ROS实时监听键盘python
  • python opencv键盘监听

    千次阅读 2018-07-22 00:45:51
    原文:https://bbs.csdn.net/topics/391993951?page=1 img1 = cv2.imread(a,0) img2 = cv2.imread(b,0) for i in range(100): cv2.imshow("... waitkey_num = cv2.waitKeyEx() if waitkey_num =...
  • python pynput监听键盘

    2020-12-11 09:51:20
    """小白随笔,大佬勿喷"""#键盘输入from pynput.keyboard import Key,Controller,Listenerkeyboard = Controller()keyboard.press("a") #按下akeyboard.release("a") #松开akeyboard.press("A") #按下Akeyboard....
  • 监听按键 a = cv2.imread(path+file) cv2.imshow('a',a) k = cv2.waitKey(10) & 0xFF if k ==13: cv2.waitKey() elif k==ord('m') : cv2.waitKey() 需要注意的是必须使用cv加载图像,只有点击图像窗口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,139
精华内容 3,655
关键字:

python键盘监听事件

python 订阅