例如程序运行后如果程序运行目录没有文件a.txt,就在程序运行目录新建一个文件a.txt,关闭的时候删除,这样第二次运行发现已存在了这个文件,说明程序已经在运行,故第二次运行直接退出
例如第一个运行程序用系统函数在本地监听一个socket端口,第二次运行程序发现这个端口已经被占用或者能连接,就知道已经有程序在运行了(例如smplayer就这样搞的)
例如第一个运行的程序在注册表某个地方写入一个1,退出时写入0,第二次运行的程序发现注册表这个地方是1就退出,如果是0就可以继续运行了,也就是其实是第一次运行
反正无论什么办法,具体要看你觉得怎么样合适才行的呢。还可以去找系统的进程列表,还可以测试某些环境变量啊,反正方法是很多的是死的,人是活的。
两种方法,一种是在组策略中指定,你打开。慢慢找就是了。
另一种方法是注册表:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
创建一个REG_Dword键,键名为RestrictRun,键值=1
然后再创建一个RestrictRun项,对,注意是项,相当于子目录。也就是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun
在上一行子项中,创建1、2、3、4、5、A、B、C、D,张三、李四、王二麻子等REG_SZ字符串儿键名,键值就是你开发的C#编译后的exe可执行文件。
注意,必须创建上述键名,指定常用的exe可执行文件,别只添加你那个C#可执行文件,你得留后手,添加注册表、记事本等程序,用来解除限制。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)