Application restart

is there a way to restart a juce app, i have all i need to do an update of my app, the file is in place, now i need to restart, i know some win32 specific ways, but is there some universal way to do this ?

You can start it with File::launchAsProcess?

but can i stop the whole application and start it again ? i now i can spawn another copy of my own process and exit the original one, but that will not work as i don’t allow more then one instance of my app.

i’m talking about how any application restarts itself after an update.

I had written this code few months back and it had worked then but for some reason i don’t use it, it’s in Carbon so it would work on Macintosh.

you can use this to kill the application

KillApplication (const char* ApplicationName) // application name without extension(without .app) 

	OSErr err = 0, otherErr  = 0;
	ProcessSerialNumber psn ;
	psn.highLongOfPSN    =    0;
	psn.lowLongOfPSN    =    kNoProcess;
	err = GetNextProcess(&psn);
		CFStringRef name;
		otherErr = CopyProcessName(&psn, &name);
		if(otherErr != 0)
			return -1;

		CFStringRef processName = CFStringCreateWithCString(NULL, ApplicationName, NULL);    ;

		CFComparisonResult result = CFStringCompare(processName, name, 0);
		if(result == 0)
			KillProcess (&psn);
		err = GetNextProcess(&psn);       
	}while(err == 0);
	return false;


and then call " File::launchAsProcess"

i mean something like this:

modify your code so that you allow a second instance IF there is a specific command line option, and the second instance tells the previous instance to exit.

please go through these links, you might find them useful