No, you can not "prevent double click". The click is done by the user; this is beyond your control.
You can easily do one simple thing:
change extension of the executable file. You run the application using
System.Diagnostics.Process.Start
. For this call, extension does not matter at all, but the Shell won't recognize the file as executable on double click.
But why?
There is not point of running to processes. Make it all in one process. Make you second executable a library and run some method you want in your calling process. You can do in main thread or create a separate thread for it. You can even run it in a separate Application Domain. It all depends on you purpose. Anyway, there is practically nothing in creating of a separate thread which you can not achieve in just one process.
For more advanced uses, read this:
Create WPF Application that uses Reloadable Plugins...[
^].
—SA