RE: [email] RE: [GD-Windows] Restarting game exe
Brought to you by:
vexxed72
From: Grills, J. <jg...@so...> - 2004-09-09 02:19:16
|
hPrevInstance is always NULL in Win32 based systems. Our game creates a semaphore to know whether it's already running or not. You could check for it's existence, and block until it's gone (or some timer expires). HANDLE semaphore =3D CreateSemaphore(NULL, 0, 1, "MyApplicationName"); j -----Original Message----- From: gam...@li... [mailto:gam...@li...] On Behalf Of Dan Thompson Sent: Wednesday, September 08, 2004 8:29 PM To: gam...@li... Subject: Re: [email] RE: [GD-Windows] Restarting game exe Haven't tried this, but I'm sure there's a way to spin on the previous HINSTANCE that is passed in on WinMain - that is, if you are worried about dual execution. Something like if (hPrevInstance !=3D NULL) { // Can't remember what to use to get the module handle. // You may be able to just straight up do WaitForSingleObject(hPrevInstance, 100 /*timeout in case the other doesn't exit*/ ); // But that doesn't feel right. (be sure to check for timeout, in case the // user actually executed it twice } Something like that. There's probably a few steps to get the correct handle to Wait() on. -Dan ----- Original Message -----=20 From: "George Geczy (BattleGoat) (E-mail)" <ge...@ba...> To: <gam...@li...> Sent: Wednesday, September 08, 2004 6:05 PM Subject: [email] RE: [GD-Windows] Restarting game exe > Yeah, CreateProcess() was on the list of possibles (that and ShellExecute(), > though the latter is not available in Win98). It just seems a bit kludgy - > ie, for an unknown amount of time you have two instances of your game=20 > running, depending upon how Windows dishes out the execution. > > Maybe that's why I couldn't find a better way - there is no better way > :-) > > -- George. > > > - George Geczy > - Lead Programmer, BattleGoat Studios > - www.supremeruler2010.com > - "Designing the Next Generation of Intelligent Strategy Games" > > > > > -----Original Message----- > > From: gam...@li... > > [mailto:gam...@li...]On Behalf=20 > > Of Jon Watte > > Sent: Wednesday, September 08, 2004 5:45 PM > > To: gam...@li... > > Subject: RE: [GD-Windows] Restarting game exe > > > > > > > > Get your EXE path by getting the module path of your main module. > > > > Then use CreateProcess() to create the new process, and > > ExitProcess() your > > current process. > > > > If you're looking for "exec()" then there might be emulation of=20 > > that, but the basic NT kernel primitive is somewhat different, so it > > won't be quite > > what you'd be used to from UNIX. > > > > Cheers, > > > > / h+ > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today.=20 > http://ads.osdn.com/?ad_id=3D5047&alloc_id=3D10808&op=3Dclick > _______________________________________________ > Gamedevlists-windows mailing list=20 > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=3D5047&alloc_id=3D10808&op=3Dclick _______________________________________________ Gamedevlists-windows mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 |