Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Aug 19, 1997



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Checking for a Previous Instance

When working in Windows, it is very easy to lose a minimized icon on the desktop. Or you may forget you have an application running and try to open it again from the Program Manager. There are times, however, when you don't want to run two separate instances of an application. To prevent this you can use the built-in system object App to determine whether another instance of an application is running. Here's a routine you can use in your Form_Load() or Main() procedures to do this:
 Sub Form_Load () 
Dim sCaption As String 

If App.PrevInstance Then 
sCaption = Me.Caption 
MsgBox "Another Instance Is Already Running" 
Me.Caption = "Different Caption" 

AppActivate sCaption 
SendKeys "% R", True 

Unload Me 
End If 
End Sub 
Checking the App.PrevInstance property to see if it contains a True value tells you if another instance is running. If it is, inform the user, then activate the first instance prior to shutting down the second. You can activate any application that is currently running by using the AppActivate statement and passing the text that appears in the application's title bar. This technique requires that the current instance has the same caption as the one you want to activate, so you'll need to change the current title of the main window and then call AppActivate with the caption of the application. Call the statement SendKeys to tell the other instance to restore itself to a normal window state. The "% R" string passed to the SendKeys statement tells the application to invoke the control menu and select the Restore option. The code to check for multiple instances should be placed in the Main() or Form_Load() of your start-up form. This technique will not work if you incorporate information within the caption at run time, such as the current data-file name.
Paul D. Sheriff
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date