江湖救急啊!!关于vista下CreateMutex互斥体判断失败的问题
各位大哥大姐.这里有个问题请教一下..
我这里有个A.DLL,是放在windows目录下.由我的虚拟打印机驱动调用,调用A.DLL时,A.DLL里面需要判断我的另外一个程序B.EXE,是否已经启动了,如果没有启动则显示提示信息.因此在A.DLL里我就选用CreateMutex创建互斥体的方式来判断b.exe是否已经启动.但问题就在于.在xp下,A.DLL调用CreateMutex能够正确判断出B.EXE的打开与否.而在VISTA下则不行,同时,同样的代码,我另外做一个Dialog程序在vista下判断b.exe却是可以的.为什么呢?
同时,还有个现象是这样的,一开始设计的时候,本来是A.DLL判断B.EXE是否打开,没打开的话,是用shell啊.等之类的函数把程序打开的.但同样的代码,A.DLL调用后没有任何反应.另外做一个Dialog程序是可以打开的.这是为什么呢?跟用户有关?进程管理器里,A.DLL进程里用户显示的是system,而我的测试程序用户名就是用户名.是不是因为这个而无法调用?因为这个原因,就放弃这么做了..但检测B.EXE程序是否已经打开,这个却一定要做的,这个在XP下是能够实现的.可为什么vista下,怎么又不能实现了..
求求各位大哥大姐们啦,帮帮忙,看看是什么原因导致在vista下不能识别??