如果是联网的程序就联网验证在线就行锁定一个全局的内核对象. 比如自己的执行文件,如果这样还怕不保险的话,可以安装的时候往system32文件夹中写一个没用的文件,启动的时候锁定一下这个文件,下次启动因为已经被锁,就没法再锁定了,这样就只允许一个了.
bool nutex IsNew;using(System.Threading.Mutex m=new System.Threading.Mutex(true,appName,out IsNew)){ if(IsNew) //第一次运行该程序 else //重复运行。}这样就可以了。