Re: [GD-Windows] Limiting to one instance
Brought to you by:
vexxed72
From: Jason S. <ja...@mi...> - 2006-08-15 09:26:53
|
Ya and if a parent (the administrator) has setup Windows Vista time = limits on computer usage for a child account (a standard user), the = child account will be fast user switched out when their computer time = slot is up. The game & other apps will continue to run in the = background however but the user won't be able to log back in until the = potentially the next day. In theory there could be a case where a 2nd = user could log in and want to play the same game after this happened. = It's kinda a corner case, but possible... Jason -----Original Message----- From: gam...@li... = [mailto:gam...@li...] On Behalf Of = Dirk Ringe Sent: Tuesday, August 15, 2006 1:22 AM 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: gam...@li... = [mailto:gam...@li...] 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=20 > instances of an app by binding a port, and was then surprised when it=20 > 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=3D= 121642 _______________________________________________ Gamedevlists-windows mailing list Gam...@li... 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=3D= 121642 _______________________________________________ Gamedevlists-windows mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 |