I have an external program (XYZ) which I have used to build a model of a certain physical process and save it to a file to deliver to a client. The model file contains intellectual property that belongs to my company.
The program gives me an ability to password the model file and also lock the model file to a specific computer using hardware lock (diskid, cpuid, IP addresses etc.) so once I set the hardware lock the model file will only open on one computer that has the hardware locks, however there is a fundamental flaw in its design which the developer of the program has overlooked. I can open my password protected file and copy the content to a new (non-protected) instance of the same program. This effectively removes all the protection and the user is able to save the contents of the model to a new file without any password protection or hardware locks. They can then distribute this file freely.
I am looking for a way to prevent multiple instances of the program (XYZ) so that the user cannot copy-paste the content of the model file to another model file. Fortunately, the content can only be pasted in XYZ program so all I need to do is to prevent another instance of this program to prevent them from copying the contents of my model.
Let’s think of this as a password protected Word file, once I enter the password the content is in front of me. I can then copy the text and past it in another Word file, notepad or any other way and I may no longer even need the original password protected Word file. Fortunately, in my case the "text" can only be pasted again in MS Word, not elsewhere so all I want to do is prevent another instance of Word from opening and I should be in business.
I have tried exploring the registry options (regedit) but have not been able to find a solution. Using a batch file to check multiple instances is not a viable solution as the user can simply open a new instance of the program (XYZ) and copy-paste the contents to the new model file. I am looking for something like "Single Instance Application" available in VS, however since this is an external program I do not have access to it. I need to find an external way of doing it. I was hoping there is some option within the registry or some other way to do it. Thank you very much in advance.