请问下如何使用 pynput 按下热键执行对应函数,示例代码如下,一直无法执行 on_activate 方法

2022-01-05 23:49:28 +08:00
 haoxuexiaoyao
import pandas as pd
import time
import sys
import os
import pyperclip
from pynput import keyboard


def get_txt():
    return pyperclip.paste()


def on_activate(data_txt):
    df = pd.DataFrame(data_txt, columns={'txt'}, dtype='string')
    df.to_csv('text.csv', index=False, mode='a', header=False)
    print('Global hotkey activated!')


def for_canonical(f):
    return lambda k: f(l.canonical(k))


hotkey = keyboard.HotKey(
    keyboard.HotKey.parse('<ctrl>+b'),
    on_activate)
l = keyboard.Listener(on_press=for_canonical(hotkey.press),on_release=for_canonical(hotkey.release))


def main():

    sys.path.append(os.path.abspath("SO_site-packages"))
    data_txt = []
    recent_value = ""
    while True:
        tmp_value = pyperclip.paste()  # 读取剪切板复制的内容

        if tmp_value != recent_value:  # 如果检测到剪切板内容有改动,那么就进入文本的修改
            recent_value = tmp_value
            data_txt.append(recent_value)
            print('已复制内容:%s' % str(data_txt))
        time.sleep(0.1)
        l.start()
        l.join()


if __name__ == "__main__":
    main()

1172 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX