Rob
2008-07-18 19:09:00 UTC
One of our applications and a couple of our installers need to be able to
determine whether or not certain programs are running. They do that using
FindWindow(), as in this article: <http://support.microsoft.com/kb/88167>.
The problem is, Vista came along and bit us in the butt, because one of the
programs that wee need to detect is actually a service, and our detection
routine no longer detects whether or not that is running.
Is there a more reliable way to detect whether or not a program or service
is running that works across session boundaries and doesn't involve a whole
lot of pain. It should not involve .NET or anything else that has to be
installed onto an XP or Win2k system in order for it to work. (This is a
requirement for the installer; we don't want the installer to have any
prerequisites that are not present out of the box on our earliest supported
OS, which is Win2k in the version of our programs that we're currently in the
process of getting into beta. Also, as we are using Visual Studio 6 for the
development of that version, the solution must be compatible with that (i.e.,
using only Win32 API and/or MFC calls).)
determine whether or not certain programs are running. They do that using
FindWindow(), as in this article: <http://support.microsoft.com/kb/88167>.
The problem is, Vista came along and bit us in the butt, because one of the
programs that wee need to detect is actually a service, and our detection
routine no longer detects whether or not that is running.
Is there a more reliable way to detect whether or not a program or service
is running that works across session boundaries and doesn't involve a whole
lot of pain. It should not involve .NET or anything else that has to be
installed onto an XP or Win2k system in order for it to work. (This is a
requirement for the installer; we don't want the installer to have any
prerequisites that are not present out of the box on our earliest supported
OS, which is Win2k in the version of our programs that we're currently in the
process of getting into beta. Also, as we are using Visual Studio 6 for the
development of that version, the solution must be compatible with that (i.e.,
using only Win32 API and/or MFC calls).)