读书人

桌面和系统服务两栖程序怎么只能让它运

发布时间: 2013-01-05 15:20:39 作者: rapoo

桌面和系统服务两栖程序如何只能让它运行单一实例
遇到一个问题,找遍所以网络上的资料都找不到解决办法。
我做了一个系统服务和桌面的两栖程序,直接打开程序可以互斥而打开单一实例,但是如果先启动了服务,再开一次程序,这样就变成了两个实例了,请问各位老师有什么办法让它无论在服务还是桌面状态下都运行一个实例?
[解决办法]
互斥名称前加一个路径
如:
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(...)
[解决办法]

引用:
引用:恭喜内存可以实现服务和桌面共享,只要设置共享内存的权限就可以了。这里有篇文档介绍了在服务和桌面共享内存:http://hi.baidu.com/mupbzvoruubblyq/item/85e079053e8a0318acdc70fe
你好,版主老师,这篇文章非常有用,能不能在不共享内存的情况下唤出正在运行服务器程序的Fo……


是win7系统么,WIN7服务程序运行在会话0下,应用程序运行其它的会话下,服务的窗口你是呼不出为的~~

读书人网 >.NET

热点推荐