运行程序时禁止复制和粘贴文件

时间:2012-01-25 23:22:40

标签: c#

我想知道在运行我的C#应用​​程序时是否可以禁用用户复制和粘贴外部文件?

示例用户在运行应用程序时运行应用程序无法使用,当应用程序完成后,再次启用剪贴板,用户可以立即复制和粘贴。

我发现了prevent-cut-paste-copy-delete-re-naming-of-files-folders

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

回答:“用户运行我的启动器运行游戏,然后连接到他们下载文件的服务器,此文件存储在appdata中,这是我不希望人们复制的文件”。

防止用户在自己的计算机上复制文件的唯一选择是不首先在那里发送文件。

如果你只想阻止人们复制文件(就像“禁用复制/粘贴”一样),那么打开文件为不可共享,关闭时删除可能就足够了。

答案 1 :(得分:0)

非常困难,如果不是不可能的话,而且很可能完全没有必要 - 你在计划中有什么。剪贴板属于操作系统,而不仅仅是您的应用程序。考虑如何以另一种方式解决问题的根源。如果你解释你想要做什么,也许有人会建议他们如何解决这个特定的问题。为什么使用剪贴板来维护用户/应用程序状态?如果您接受这种方式的输入,则将该数据复制到应用程序的内存(或其他地方),然后使用它。在你的应用程序完成它之前,不要指望它留在剪贴板中。但是,请注意,使用该计算结果更新/更改剪贴板的内容是违反所有可用性规则的 - 如果您正在阅读此内容,那就是您的想法。

答案 2 :(得分:0)

那将是邪恶的。无论目的是什么。请记住,每当你遇到一个需要你做一些黑客攻击的任务时,只是提供一个解决方法,以避免处理某些安全层存在的原因或(如你的情况)弄乱一些低级操作系统功能来改变他们的行为,问自己是否有任何意义。

您要么不需要该功能,要么正在搜索系统/软件中的安全问题,该安全问题将在数周或数月内修复。

实际上,您可能会实施一些丑陋的不可靠障碍,阻止用户执行这些操作,但用户始终可以找到不同的方法来执行这些操作。除非你正在处理一些DRM的东西,我怀疑。

然而,阻止用户复制粘贴?那肯定不会是一些快乐的用户...

答案 3 :(得分:0)

如果你打算在每次执行时下载文件,那么你可以在游戏的“加载屏幕”下载它并将其保存在内存流中。没有必要挂钩剪贴板,并将其拉出来涉及调试器或从交换文件中提取的能力......

由于每次发布时下载游戏核心数据的带宽成本,我不是这个解决方案的粉丝(而且我怀疑你/你的客户也不会)...