如何锁定剪贴板以便其他应用程序不允许更改剪贴板?

时间:2016-04-05 12:39:42

标签: delphi clipboard delphi-2007

在我的应用程序中,我想锁定剪贴板以防止其他应用程序更改剪贴板。如何使用Delphi 2007实现这一目标?

2 个答案:

答案 0 :(得分:4)

没有设施。用户是剪贴板的最终所有者。当用户想要剪贴板上的其他内容时,用户将剪切或复制新内容。作为应用程序开发人员,您不会获得投票。 (发现程序试图断言他们没有的投票的用户可能会卸载这些程序并给他们不好的评论。)

你可以监控剪贴板以发现它随wm_ClipboardUpdate发生变化,但是当你收到通知时,那里已经有了新的东西。

答案 1 :(得分:2)

剪贴板的目的是使存储在其中的数据随时可供任何程序使用,从而提供在不同应用程序之间传输此类数据的简便方法。

因此,没有官方机制允许阻止访问剪贴板。

如果您考虑尝试阻止访问剪贴板的其他应用程序,以避免它们能够截取存储在那里的应用程序中的某些数据用于复制目的,那么任何方式(这是我唯一的原因)可以想到你为什么要这样做)还有另一种更好的方法。

不使用Windows默认剪贴板来复制和粘贴操作的字符串部分数据,而是实现您自己的自定义剪贴板,该剪贴板只能从您自己的应用程序中获得,类似于Microsoft对其Office剪贴板(https://support.office.com/en-us/article/Copy-and-paste-multiple-items-by-using-the-Office-Clipboard-714a72af-1ad4-450f-8708-c2931e73ec8a)的处理

为了做到这一点,您只需要设计一个存储机制,然后覆盖默认的剪切,复制和粘贴快捷方式,以使用您的机制而不是默认的Windows剪贴板。