
Signature
Kind regards,
Bruno.
bruno_nos_pam_van_dooren@hotmail.com
Remove only "_nos_pam"
>> Hi,
>>
[quoted text clipped - 13 lines]
> code.
> From MSDN:
Except you should use OpenMutex instead, because you don't want to exclude
exe1 from starting.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/op
enmutex.asp
Return Values
If the function succeeds, the return value is a handle to the mutex object.
If the function fails, the return value is NULL. To get extended error
information, call GetLastError.
If a named mutex does not exist, the function fails and GetLastError returns
ERROR_FILE_NOT_FOUND.
> "If the mutex is a named mutex and the object existed before this function
> call, the return value is a handle to the existing object, GetLastError
[quoted text clipped - 12 lines]
>
> If you were using .NET you would use the Process class for that.
Mihajlo Cvetanović - 23 Mar 2006 16:59 GMT
>>If exe1 already has a mutex, you can simply check in the other exe if it
>>is
[quoted text clipped - 3 lines]
> Except you should use OpenMutex instead, because you don't want to exclude
> exe1 from starting.
But if OpenMutex fails you should CreateMutex, right? But then there
might arise situation when both processes call OpenMutex, concludes that
there isn't one, then both call CreateMutex. To address this you must
finally check with the GetLastError after CreateMutex. That means that
OpenMutex is an extra call that achieves nothing.
CreateMutex doesn't automatically grants you ownership of the mutex.
Waiting functions do that (WaitForSingleObject et al.).
Ben Voigt - 23 Mar 2006 20:06 GMT
>>>If exe1 already has a mutex, you can simply check in the other exe if it
>>>is
[quoted text clipped - 12 lines]
> CreateMutex doesn't automatically grants you ownership of the mutex.
> Waiting functions do that (WaitForSingleObject et al.).
The OP has already done that in his singleton application. Now he's asking
the question, is it possible to detect whether that application is running
from another application, and for that purpose he should use OpenMutex only.
Bruno van Dooren - 23 Mar 2006 21:17 GMT
> The OP has already done that in his singleton application. Now he's
> asking the question, is it possible to detect whether that application is
> running from another application, and for that purpose he should use
> OpenMutex only.
Not true.
For the exe of which only 1 instance may be running (exe) it doesn't matter
if the mutext exists or not.
It just wants ownership. It tries to take it and bails out if it can't.
The managing app (exe1) only want to know if the mutex exists or not.
CreateMutex can achieve
the same thing as OpenMutex, as long as the InitialOwner parameter of
CreateMutex is set to 0, so
that it is not accidently owned.

Signature
Kind regards,
Bruno van Dooren
bruno_nos_pam_van_dooren@hotmail.com
Remove only "_nos_pam"