Re: Limiting to one instance
"Stefan Boberg" <[email protected]> Tue, 15 Aug 2006 10:53:26 +0200
| Newsgroups | gmane.games.devel.windows |
|---|---|
| Message-ID | <[email protected]> |
But you don't need a global mutex, just a named session mutex, no? I.e. = just a plain named Mutex (without \\global\ prefix) will do if you want the= mutex to apply only to the current user session. /Stefan > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of > Dirk Ringe > Sent: 15 August 2006 10:22 > To: Alen Ladavac; Game Development for MS Windows; Andrew Grant > Subject: Re: [GD-Windows] Limiting to one instance > = > One thing to keep in mind when using global objects in windows is Fast > User Switching in Windows XP, where in fact multiple users are logged in > at the same time. When you use CreateMutex you block the application from > running under ALL other user accounts as well. This could as well apply to > FindWindow. If you do not want this to happen, you have to use a technique > which is per user, like the old unix style pid file stored under the users > home directory. > = > Dirk > = > -----Urspr=FCngliche Nachricht----- > Von: [email protected] > [mailto:[email protected]] Im Auftrag von > Alen Ladavac > Gesendet: Dienstag, 15. August 2006 10:13 > An: Andrew Grant > Cc: Game Development for MS Windows > Betreff: Re: [GD-Windows] Limiting to one instance > = > > I remember at an old company one genius tried to prevent multiple > instances > > of an app by binding a port, and was then surprised when it failed for > > pretty much everyone who was running a firewall! > = > Actually, it's not such a weird idea. Some applications rely on IP > ports as a simple yet very portable IPC mechanism. Firewalls should > really know better, by handling 127.0.0.1 specifically by default. But > apparently even the best in class don't. > = > Btw, in my book, even using a named mutex in that way is a bit hacky > because you are relying on error. But what can we do, when there's no > real API intended for that purpose. > = > Personally, I've been using FindWindow(xyz, NULL) to find a main > window by class name. Same principle (with same weaknesses as a named > mutex), but doesn't require an extra object creation, as you probably > already have a window, and you can use this to test even for foreign > applications, because it doesn't require access to the code of the > tested application. A nice side effect is that once you have the > window, you can report messages like "Cannot start, please close ABCD > application first", where you get the ABCD from the application's main > window caption. > = > Cheers, > Alen > = > = > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Gamedevlists-windows mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > = > = > = > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Gamedevlists-windows mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easi= er Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D1= 21642 _______________________________________________ Gamedevlists-windows mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=3D555