技术工具箱 | 三:Auto_Copy 一个用于Win的自动复制文本的工具

---


Auto_Copy:Windows自动复制文本工具

  Auto_Copy 是一款专为 Windows 设计的工具,使文本复制和粘贴变得更加便捷。它支持通过鼠标选中文本或使用快捷键 `Ctrl+A` 自动复制文本到剪贴板,并且能够通过右键单击快速粘贴文本内容。

一、灵感来源

  • 在使用 Mobaxterm 过程中,我发现其内部具备选中即自动复制和右键粘贴的功能,但限于软件内部使用。
  • 由于这一便捷功能,我开发了 Auto_Copy,使其能在整个操作系统中实现类似的功能。

二、主要功能

  • 自动复制:鼠标选中或 Ctrl+A 选中文本即自动复制到剪贴板。
  • 快速粘贴:右键单击即可快速粘贴剪贴板内容。

三、更新日志

  • 2024.06.30:优化代码,显著减小可执行文件大小,从 38MB 优化至 5MB。
  • 2024.06.27:完成基本功能开发和测试。

四、Git 链接和截图

查看项目源码和下载 Auto_Copy

工具截图

五、前置需求和安装

  • Python 3.x
  • 必需的库:pyautoguiclipboardpynput

安装步骤:

  1. 克隆仓库

    git clone https://github.com/sweetorange2022/auto_copy.git
    cd auto_copy
    
  2. 安装所需库

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    或单独安装:

    pip install pyautogui clipboard pynput -i https://pypi.tuna.tsinghua.edu.cn/simple
    

六、使用方法

6.1 使用可执行文件

直接下载 .exe 文件,双击即可运行。

6.2 使用 Python 脚本

6.2.1 运行脚本
```bash
python auto_copy.py
```
6.2.2 如何操作
  • 鼠标操作:选中文本即自动复制。
  • 快捷键:使用 Ctrl+A 选中文本也自动复制。
  • 右键单击:粘贴剪贴板内容到当前光标位置。

6.3 构建可执行文件

使用 PyInstaller 将脚本转换为独立可执行文件:

  1. 安装 PyInstaller

    pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  2. 构建可执行文件

    pyinstaller --onefile auto_copy.py
    
  3. 查找可执行文件

    完成后,可执行文件将位于 dist 目录中。

七、附代码示例

import time
from pynput import mouse, keyboard
import pyperclip

class AutoCopyTool:
    def __init__(self):
        self.last_copied_text = ""
        self.last_copy_time = 0
        self.ctrl_a_pressed = False
        self.mouse_listener = mouse.Listener(on_click=self.on_click)
        self.keyboard_listener = keyboard.Listener(on_press=self.on_press, on_release=self.on_release)

    def start(self):
        self.mouse_listener.start()
        self.keyboard_listener.start()
        self.mouse_listener.join()
        self.keyboard_listener.join()

    def on_click(self, x, y, button, pressed):
        current_time = time.time()

        if button == mouse.Button.left and not pressed:
            self.copy_to_clipboard()
        elif button == mouse.Button.right and not pressed:
            self.paste_from_clipboard(current_time)

    def on_press(self, key):
        try:
            if key == keyboard.Key.ctrl_l or key == keyboard.Key.ctrl_r:
                self.ctrl_a_pressed = True
        except AttributeError:
            pass

    def on_release(self, key):
        if self.ctrl_a_pressed and key == keyboard.KeyCode.from_char('a'):
            self.copy_to_clipboard()
        if key == keyboard.Key.ctrl_l or key == keyboard.Key.ctrl_r:
            self.ctrl_a_pressed = False

    def copy_to_clipboard(self):
        keyboard.Controller().press(keyboard.Key.ctrl)
        keyboard.Controller().press('c')
        keyboard.Controller().release('c')
        keyboard.Controller().release(keyboard.Key.ctrl)
        time.sleep(0.1)
        current_copied_text = pyperclip.paste()
        if current_copied_text != self.last_copied_text:
            self.last_copied_text = current_copied_text
            print("复制的内容:", current_copied_text)
        self.last_copy_time = time.time()

    def paste_from_clipboard(self, current_time):
        if current_time - self.last_copy_time < 0.5:
            return
        current_copied_text = pyperclip.paste()
        print("右键复制的内容:", current_copied_text)
        keyboard.Controller().press(keyboard.Key.ctrl)
        keyboard.Controller().press('v')
        keyboard.Controller().release('v')
        keyboard.Controller().release(keyboard.Key.ctrl)
        self.last_copy_time = current_time

if __name__ == "__main__":
    tool = AutoCopyTool()
    tool.start()

自动将选定的文本复制到剪贴板。有作为纯文本复制的选项;包括复制文本中的URL;等等 当使用鼠标选择文本时,它将自动复制到剪贴板。 我发现,在我的浏览器中选择文本的唯一时间是我想将其复制到剪贴板。这个扩展是为了简化流程。 特征:    - 启用/禁用文本字段的自动复制(v1.0.0)    - 以纯文本形式启用/禁用副本(v1.0.2)    - 启用/禁用包含复制文本的URL(v1.0.2)    - 实施了一些用户正在经历的哔声,谢谢gregg! (v1.0.4)    - 为Chrome 6(v1.0.5)实施了解决方法    - 按照Google的要求更新了作品(v1.0.6)    - 添加中点击功能粘贴。请参阅启用扩展选项(v2.0.0)    - 增加了指定评论格式的能力,可以选择添加到复制文本。请参阅扩展选项来配置(v2.0.0)    - 增加了只有在选择了最小字数的情况下才包括注释的选项(v2.1.0)    - 修正了一个错误,如果选项没有被保存(v2.1.1)    - 增加黑名单支持(v3.0.0)    - 增加了对URL的黑名单支持(v4.0.0)    - 增加了复制通知(v4.0.0)    - 添加删除复制(v4.0.0)    - 作为链接添加副本(v4.0.0)    - 增加了ctrl / shift键来禁用(v4.0.0)    - 中点击处理(v4.0.0)更新粘贴    - 重新启用支持格式化复制(v4.0.0)    - 复制评论和复制没有格式化不再依靠对方(v4.0.0)    - 增加了对内容可编辑元素禁用的支持(v4.1.2)    - 增加了支持ctrl / shift来启用或禁用扩展(v4.1.2)    - 添加到清单,以便扩展可以在任何URL类型(v4.1.2)    - 错误修复:自动复制将执行文本取消选择,或点击没有选择任何东西(v4.1.2)    - 错误修复:双击或击时停止多个副本(v4.1.2)    - 错误修复:在黑屏上自动复制通知文本无法读取(v4.1.3)    - 错误修复:允许双击并拖动(v4.1.3)    - 错误修复:未检测到嵌套的contentEditable元素(v4.1.4    - 消除重点击延迟(v4.1.4)    - 允许复制通知上的警报可配置(v4.1.4)    转到选项屏幕来配置您要使用的功能。 注意:    - 这个扩展现在工作的所有URL类型。为了使其与file:///网址一起使用,您必须在“Chrome扩展程序”页面上选中“允许访问文件网址”。内容脚本在扩展程序库中自动禁用。因此,该扩展程序无法在此页面或图库中的任何页面上运行,因此请在另一页面上进行测试。    - Chrome版本22或更高版本需要使用此扩展。 支持语言:English
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜橙の学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值