CC++中 如何只允许运行一个程序实例?多列一些方法。

CC++中 如何只允许运行一个程序实例?多列一些方法。,第1张

一般来说的办法就是怎么想让第二次运行知道已经有程序在运行了,或者说怎么能通知第二个程序已经有文件在运行了

例如程序运行后如果程序运行目录没有文件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#可执行文件,你得留后手,添加注册表、记事本等程序,用来解除限制。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11282359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存