将 Windows 的文件复制与文本复制分开

将 Windows 的文件复制与文本复制分开

我想更改 Windows 的复制功能,即如果我复制了文本并复制了文件,它们都将保存在缓冲区中 - 当我在文本编辑器中按粘贴时,我的文本将被粘贴。当我在任何文件夹中按粘贴按钮时,我的文件将被粘贴。

有什么方法可以实现这个功能吗?

答案1

对于未来的 Windows 版本来说,这是一个好主意。您可以致电 MS 客户服务,看看他们是否愿意听!与此同时,请尝试在 Autohotkey 论坛中提问

与此同时,

您可以做的一件事是,如果程序在涉及文本时拦截 Windows 剪贴板,并且不将其放入 Windows 剪贴板,而只将其放入自己的剪贴板中。然后当您复制/粘贴文件时,它会将其放入 Windows“剪贴板”中。那么这就接近您想要的了。因为一个热键会粘贴文本,而另一个热键会粘贴文件。

另一种可能的方法是,如果 Windows 剪贴板的替代品足够“强大”,那么它将允许复制/粘贴文件。在这种情况下,它可能能够做到这一点或接近做到这一点,例如,虽然不像 control-v 那么简单,但效率相当高。

答案2

使用 AutoHotkey 脚本(一种出色、成熟的开源自动化语言)应该相对容易地实现这一点。

下面的代码片段是一个更大的脚本的一部分,每当我登录时都会激活它。每当我按下 CTRL+SHIFT+e 组合键时,它都会在打开 Notepad++ 中选定的文件之前将当前 Windows 剪贴板内容保存到变量中,然后将上一个剪贴板(“clipback”变量)值写回 Windows 剪贴板。它需要复制选定文件的路径才能打开它,因此如果没有此功能,每次我使用此快捷方式在 Notepad++ 中打开文件时,任何剪贴板内容都会被破坏。

使用此脚本,我可以单击任意窗口(桌面、资源管理器窗口、“文件打开”对话框等)中的任意类型的文件,然后按下组合键以在 Notepad++ 中将其作为文本打开。这对于通常需要在其他应用程序中打开的关联文件非常有用。


;在 Notepad++ 中编辑
^+e::
clipback = %clipboard%
clipboard =
SendInput {F2}{Esc}^c
clipwait
对剪贴板进行排序
运行,C:\Program Files\Notepad++\notepad++.exe "%clipboard%"
运行,C:\Program Files\Notepad++\notepad++.exe "%clipboard%"
运行,C:\Program Files\Notepad++\notepad++.exe "%clipboard%"
clipboard = %clipback%
返回


经过一些修改,它可以覆盖 CTRL+C 和 CTRL+V,在执行文件复制或剪切操作之前保存任何文本内容,然后在移动或复制文件后恢复文本。如果出于某种原因,您不想将 AutoHotKey 留在计算机上,则可以编译 AutoHotKey 脚本并将其添加到启动文件夹中,以便在您需要时它始终处于活动状态。

多年来,我一直在使用 AHK 脚本修改 Windows。它可以做一些非常了不起的事情。

相关内容