急, XP系统下,如何限制多个用户之能同时启动一个程序进程。

mostneed 2005-09-16 10:32:36
因为XP系统可以实时切换用户,比如我用A用户登陆后启动了程序 app.exe, 如果再切换到B用户登陆后,不能运行同一个程序 app.exe, 提示程序被其他用户运行着。

请问如何实现?
app.exe可能是vc写的也可以是vb写的。

目前只知道一个比较土的办法,打开一个本地文件。每次启动判断文件是否被占用,若被占用就说明已经有个实例已经启动。

分不够再加,谢谢各位。
...全文
184 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoguaiwei 2005-09-26
  • 打赏
  • 举报
回复
mark
「已注销」 2005-09-16
  • 打赏
  • 举报
回复
打开一个网络端口
qq_lhz 2005-09-16
  • 打赏
  • 举报
回复
期待解决方案!~~~~~~~
yzkzero 2005-09-16
  • 打赏
  • 举报
回复
使用全局对象名
CreateMutex(..., ..., Global\\mutex_name);
mostneed 2005-09-16
  • 打赏
  • 举报
回复
xp下,可以不log out直接切换到另外一个用户。

谢谢大家关注,分不够再加。
亿云力科技 2005-09-16
  • 打赏
  • 举报
回复
楼主能解释一下什么叫实时切换用户吗?不用LogOff吗?怎么操作?
mostneed 2005-09-16
  • 打赏
  • 举报
回复
这个我说错了,不会是service,

是一个service的界面程序。

写注册表的办法不太好,如果程序异常中断,就没有办法恢复标志位了。

跨"用户" 无论是不是service都没有办法用互斥量实现互斥。
hjunxu 2005-09-16
  • 打赏
  • 举报
回复
如果是service怎么会跑两次呢?
idAnts 2005-09-16
  • 打赏
  • 举报
回复
另外windows service程序使用互斥量是有用的吧?我以前用过。
idAnts 2005-09-16
  • 打赏
  • 举报
回复
我有个想法,app.exe在注册表里的local machine下做个标记,启动的时候设置,关闭的时候清除,这样就可以控制了。
mostneed 2005-09-16
  • 打赏
  • 举报
回复
由于是跨用户,而不紧紧是跨进程,app.exe也有可能是windows service程序,使用进程互斥量没有用。
快乐鹦鹉 2005-09-16
  • 打赏
  • 举报
回复
CreateMutex
hjunxu 2005-09-16
  • 打赏
  • 举报
回复
用一个互斥变量不知道可不可以哇?
快乐鹦鹉 2005-09-16
  • 打赏
  • 举报
回复
用应用程序互斥不可以么?
hjunxu 2005-09-16
  • 打赏
  • 举报
回复
看了一下MSDN,感觉 yzkzero(U) 的方法 CreateMutex(..., ..., "Global\\mutex_name");好像可以。
搂主可以试一下
mostneed 2005-09-16
  • 打赏
  • 举报
回复
谢谢
yzkzero(U)
皮皮鲁 2005-09-16
  • 打赏
  • 举报
回复
同意:

回复人: yzkzero(U) ( ) 信誉:100 2005-09-16 12:15:00 得分: 0


使用全局对象名
CreateMutex(..., ..., Global\\mutex_name);


15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧