在Windows远程桌面的不同会话之间,如何实现程序的互斥?
来源:互联网 发布:赌博源码 编辑:程序博客网 时间:2024/04/29 13:57
问题:
(1)场景一
我是使用CreateMutex来实现限制只能运行程序的一个实例的, 由于程序是放在服务器上运行,所以维护人员经常使用Windows的远程登录功能维护服务器,
我发现在远程桌面不同会话之间,CreateMutex是不起作用的,即不同的会话可以同时运行程序的多个副本,即CreateMutex只在同一个会话中起作用。
(2)场景二
在XP系统中调用自定义GINA mygina.dll成功登陆;
然后用另一台机器用RDP远程登陆上来,我想在mygina.dll加载时只让一个会话做一些事件,所以在DLL_PROCESS_ATTACH时通过CreateMutex来做互斥,
可发现另一台机器远程登陆时,竟然CreateMutex返回成功。
怎么解决在Windows远程桌面的不同会话之间实现程序的互斥?
答:mutex名字前面加global\\就可以了。
HANDLE hMutex = ::CreateMutex(NULL, FALSE, L"global\\XRedGina.dll");if (INVALID_HANDLE_VALUE != hMutex && NULL != hMutex && ::GetLastError() != ERROR_ALREADY_EXISTS){
- 在Windows远程桌面的不同会话之间,如何实现程序的互斥?
- 在vc编程中如何实现程序的互斥
- 如何在Windows Server 2008 上添加RD (远程桌面)会话主机配置的远程桌面授权服务器
- 如何在MFC中实现工具条按钮的互斥
- windows的远程桌面如何全屏
- 如何在命令行删除在会话设置的启动程序
- Windows与ubuntu之间的远程桌面连接
- 如何在远程桌面中切换会话
- 如何在远程桌面中切换会话
- Windows下多线程之间的互斥与同步
- 如何在指定的终端会话中启动程序
- 实现程序的互斥运行
- 进程之间的互斥
- 线程之间的互斥
- 在Web开发中,如何实现会话的跟踪?
- 如何在不同的android应用之间共享数据?
- java线程之间的控制,使用Semaphore 实现 互斥
- 如何实现不同域名后缀domino server之间的SSO
- 小米2013校园招聘笔试题
- 我的第二个C++上级报告(摄氏度转华氏度)
- awk:查看Apache的并发请求数及其TCP连接状态数据
- 日期问题
- ireport+struts2集成开发总结二:一些需要注意的小细节
- 在Windows远程桌面的不同会话之间,如何实现程序的互斥?
- 操作注册表
- 好的博客,以后继续添加
- 解读extjs源码之AbstractSelectionModel.js
- 2011年统计用区划代码和城乡划分代码
- 只在博客发发文章罢了
- Latex数学公式中的空格
- 我的第一个C++
- (html4和html5区别)如何在一个input上添加焦点