Re: Running processes
- From: "Ben Voigt" <bvoigt@xxxxxxxxxxxxx>
- Date: Thu, 23 Mar 2006 09:01:03 -0600
"Bruno van Dooren" <bruno_nos_pam_van_dooren@xxxxxxxxxxx> wrote in message
news:836C91F9-9711-47D1-B994-9AE1F56E4463@xxxxxxxxxxxxxxxx
Hi,
I have written a win32 console application(exname1.exe) which runs for
ten minutes.I am calling this exname1.exe from another exe named
exname.exe using shellexecuteex.Now from exname.exe coding i have to
check whether exname1.exe is already running or not.How to find whether
a win32 console application is already runing or not from another win32
console application.I need only one copy of exe has to run(for that i
have already used createmutex in exename1.exe.But now i want to know
from exname.exe whether exename1.exe is running or not).How to find all
the processes or particular exe running in the computer using vc++6.0
If exe1 already has a mutex, you can simply check in the other exe if it
is
running or not. call CreateMutex in your other exe and check the error
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/openmutex.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
returns ERROR_ALREADY_EXISTS, bInitialOwner is ignored, and the calling
thread is not granted owernship. "
This will tell you if the mutex already exists or not. Hence you know if
the
exe1 is running or not. Remebmber to close the mutex handle afterwards.
A general way of checking if a process is running (using win32) would be
to
use the Process Status API (PSAPI). Check this:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/enumerating_all_processes.asp
For more details.
If you were using .NET you would use the Process class for that.
--
Kind regards,
Bruno.
bruno_nos_pam_van_dooren@xxxxxxxxxxx
Remove only "_nos_pam"
.
- Follow-Ups:
- Re: Running processes
- From: Mihajlo Cvetanović
- Re: Running processes
- References:
- Running processes
- From: plmanikandan
- Running processes
- Prev by Date: Re: Debug Assertion Failed! msvcr80d.dll!__loctotime64_t Expression: (((long)(yr-1900) >= _BASE_YEAR) && ((long)(yr - 1900) <=
- Next by Date: Re: Someone explain me this code
- Previous by thread: Running processes
- Next by thread: Re: Running processes
- Index(es):
Relevant Pages
|