My Idea (which may be not good) was to at form unload add....

Code:
Private Sub Form_Unload(Cancel As Integer)
Dim RetVal
    RetVal = ShellExecute(vbNull, "open", App.Path & "\" & App.EXEName, vbNullString, vbNullString, 1)
End Sub

But it didn't work coz i check for app.previnstance in form load event and end it if i find one. And the above method works so fast that it loads the instance before the oriinal app has been unloaded so the app.previnstance gets true and ends.

Then my 2nd method was to let the 2nd opening instance app to wait a little bit for the original app to completely unload and i achived it using timer to wait a few seconds and then check for the instance, but ironically after few seconds when the timer gets activated even though the original app has been unloaded the app.previnstance gets true and the 2nd instance also gets ended????????

Does anybody has a solution?

PS: I don't want to use batch files or another app for restarting etc...