防止外部程序的多个实例

时间:2016-11-09 09:07:02

标签: single-instance

我有一个外部程序(XYZ),我用它来构建某个物理过程的模型并将其保存到文件中以传递给客户端。模型文件包含属于我公司的知识产权。

该程序使我能够密码模型文件,并使用硬件锁(diskid,cpuid,IP地址等)将模型文件锁定到特定的计算机,所以一旦我设置了硬件锁,模型文件将只打开在一台具有硬件锁的计算机上,但是它的设计存在一个根本缺陷,该程序的开发人员忽略了这一缺陷。我可以打开受密码保护的文件,并将内容复制到同一程序的新(未受保护)实例中。这有效地消除了所有保护,用户可以将模型的内容保存到新文件,而无需任何密码保护或硬件锁定。然后他们可以自由分发这个文件。

我正在寻找一种方法来阻止程序的多个实例(XYZ),以便用户无法将模型文件的内容复制粘贴到另一个模型文件中。幸运的是,内容只能粘贴在XYZ程序中,因此我需要做的就是阻止该程序的另一个实例阻止它们复制模型的内容。

让我们将此视为受密码保护的Word文件,一旦我输入密码,内容就在我面前。然后,我可以将文本复制并以其他Word文件,记事本或任何其他方式将其复制,我甚至可能不再需要原始密码保护的Word文件。幸运的是,在我的情况下,"文本"只能在MS Word中再次粘贴,而不能在其他地方粘贴,所以我想做的就是阻止Word的另一个实例打开,我应该在商业中。

我尝试过探索注册表选项(regedit),但一直无法找到解决方案。使用批处理文件检查多个实例不是一个可行的解决方案,因为用户可以简单地打开程序的新实例(XYZ)并将内容复制粘贴到新的模型文件中。我正在寻找像"单一实例应用程序"在VS中可用,但由于这是一个外部程序,我无法访问它。我需要找到一种外在的方式。我希望在注册表中有一些选项或其他方式来做到这一点。非常感谢你提前。

0 个答案:

没有答案