Activating the Previous Instance of Your App

Activating the Previous Instance of Your App

There are many times when you may not want to allow more than one instanceof your application to be launched. In such cases, your program needs todetermine if an instance is already running and, if so, activate and closethe previous instance. If no previous instance is detected, the programcontinues normally. The AnotherInstance function determines if the program is already running.If it is, the previous instance is activated and the function returns True.If no previous instance is running, the function returns False. You shouldcall this function when your program starts, preferably from Sub Main.If it returns True, then the program should terminate:

 'Activates the previous instance Function AnotherInstance () Dim appTitle$ 
 If App.PrevInstance Then appTitle$ = App.Title 'Get our application name App.Title = "~!@#$%^&" 'Set new instance name to unlikely value AppActivate appTitle$ 'Activate previous instance AnotherInstance = True Else AnotherInstance = False End If End If 

AnotherInstance works by checking the PrevInstance property ofthe App object. If PrevInstance is not zero, then the program is alreadyrunning. In this case, the function activates the previous instance usingAppActivate. Note that AppActivate activates the application with the specifiedwindow caption. To prevent AppActivate from activating the current instance,the Title property must be set to a value that is not likely to be theactual caption. Note that this also means that this technique will notwork if your application modifies the window caption


Share the Post: