桌面和系统服务两栖程序如何只能让它运行单一实例
遇到一个问题,找遍所以网络上的资料都找不到解决办法。
我做了一个系统服务和桌面的两栖程序,直接打开程序可以互斥而打开单一实例,但是如果先启动了服务,再开一次程序,这样就变成了两个实例了,请问各位老师有什么办法让它无论在服务还是桌面状态下都运行一个实例?
[解决办法]
互斥名称前加一个路径
如:
YourEventName -> Global\\YourEventName
[解决办法]
恭喜内存可以实现服务和桌面共享,只要设置共享内存的权限就可以了。这里有篇文档介绍了在服务和桌面共享内存:http://hi.baidu.com/mupbzvoruubblyq/item/85e079053e8a0318acdc70fe
[解决办法]
h := OpenMutex(READ_CONTROL, FALSE, pansichar('mymutex')); //注意一定要使用READ_CONTROL
if h <> 0 then
程序的另外一个示例已经打开了,直接退出
else
createMultex(...)
[解决办法]