【问题标题】:Creating a hotkey to enter text using python, running in background waiting for key-press使用python创建一个热键来输入文本,在后台运行等待按键
【发布时间】:2018-08-01 14:51:40
【问题描述】:

我正在尝试使用 python 应用程序模拟我的操作系统的复制/粘贴功能。

我想要发生的是,当我按下“Alt-X”键时,它会将预定义的文本粘贴到当前占用的文本字段中。基本上复制和粘贴,但创建我自己的。

我尝试过使用 pyautogui 和其他框架,但我似乎无法弄清楚如何让它在后台等待按键,然后输入文本。

有什么想法吗?谢谢。

【问题讨论】:

  • 最好在 superuser.com 上询问。哪个操作系统?如果是linux,哪个WM?我知道如何为 linux 做到这一点
  • 这可能是跨平台的,但我希望最终在 Windows 上运行它。
  • 所以我在这里不是你的人
  • 那么你将如何在 linux 中做到这一点?使用蟒蛇?我也许可以转移它
  • 使用xdotool 和窗口管理器的首选项(在键盘快捷键上触发命令)。 kde、gnome和xfce4至少可以触发这种事件

标签: python python-3.x text copy-paste


【解决方案1】:

试试keyboard库:

import keyboard

text_to_print='default_predefined_text'
shortcut = 'alt+x' #define your hot-key
print('Hotkey set as:', shortcut)

def on_triggered(): #define your function to be executed on hot-key press
    print(text_to_print)
    #write_to_textfield(text_to_print) #<-- your function
keyboard.add_hotkey(shortcut, on_triggered) #<-- attach the function to hot-key

print("Press ESC to stop.")
keyboard.wait('esc')

上面将在终端中打印一个预定义的文本。

使用sudosudo python program_name.py 执行脚本

安装:

sudo pip 安装键盘

注意:根据文档“适用于 Windows 和 Linux(需要 sudo),具有实验性 OS X 支持

【讨论】:

  • 谢谢!我会阅读键盘库,但是键定义是否需要匹配任何规则? 'alt+x' 会被识别吗?
  • @nateph,是的,'alt+x' 已被识别。自己试试。我刚刚浏览了 GitHub 库中提供的示例,直觉使用了 'alt+x'
  • 所以这会打印到终端,有没有办法在后台运行时粘贴到另一个应用程序中?还有,write_to_textfield 函数是什么?
  • @nateph 是您应该定义的函数,用于在您想要的任何位置(文本框、文本文件等)粘贴到您的文本字段。你可以在你的其他程序中包含这个程序 sn-p 因为它在后台作为一个单独的线程运行,所以它不会干扰你的那些程序
猜你喜欢
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
相关资源
最近更新 更多