• 0

[VB6] Exit Application


Question

Hi,

I have written a VB6 application, and want to exit it if a certain condition happens. All my code gets called from the Form_load event and the form it self is never shown. I tryed using "unload me" or "unload form1" but that didnt work.

So what command would I use in VB6 to close the application?

thx in advance!

Link to comment
https://www.neowin.net/forum/topic/338146-vb6-exit-application/
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Actually a Form Unload or "End" command during the Load event can cause problems and/or simply not work so...

declare a module level variable

Private mbUnload as Boolean

Sub Form_Load

If Conditions_Met Then

mbUnload = True

End if

End Sub

Sub Form_Activate

If mbUnload = True Then

Unload Me

End If

End Sub

  • 0

sweet, it worked when I put the unload me in the Form_Load. Why doesnt it work when I put it in a different sub though?

I was reading something about End before, but it sounded kinda negative and that it shouldnt be used... ?

I actually solved my problem too by using a module instead of a form and by using the exit sub command in the last sub that gets called.

still thx guys:yes:!

  • 0

<sigh> I just know I am going to regret posting this but...

"End" is the proper way to completely stop an application becuase, often, application are more than just Forms, and often do not include Forms at all. Simply doing an Unload on all Forms will not nessasarily destroy all objects (classes, references, etc).

Although Unload is not bad, it is not complete.

(please take this message as it was intended, to inform, not inflame)

Sincerely,

James Rose

New York City

  • 0
  jameswjrose said:
Simply doing an Unload on all Forms will not nessasarily destroy all objects (classes, references, etc).

586138573[/snapback]

Err, why would you regret posting it? I'm just curious--to the best of my understanding, if you unload all the forms, won't the application be closed anyway by the system? I understand that a VB app is often more than just forms. But, according to MSDN, in the documentation for the End statement:

  Quote
For normal termination of a Visual Basic program, you should unload all forms. Your program closes as soon as there are no other programs holding references to objects created from your public class modules and no code executing.

The other resources (classes, references, file handles, etc) should be reclaimed by the OS once your application terminates, right?

  • 0

See, that's the thing, the Garbage collector in VB6 runs when a function/procedure ends (as opposed to .Net which runs at rather random intervals, or you can call it specifically, but this is another issue)

Say you had an app with one Form and one Class. Say the class is created when you load the form. The class SHOULD be destroyed when you unload the form. However this is not always the case. The End command makes sure ALL references are destroyed. The reason for this importance is that if your app is started again, is is possible (however unlikely) that the previous values from the original class will still be in memory.

In fact, we had a VERY similar situation about class destruction in our app just this month. (I have NO idea how the values were not being cleared but....)

End will guarentee that all memory will be cleared.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • To the extent that we are talking about beta software, this article falls more in the realm of nerds sharing thoughts and tricks. I love seeing articles like this, people should very openly share what they like and dislike about the new look. We all know Apple tends to be stubborn, but maybe they still make minor tweaks to improve the readability.
    • I know beauty is in the eye of the beholder, but I disagree. It looks good, but looking good should be a lower priority to being functional, and that is where I think Apple missed the mark.
    • Uninstall is also just a link to the "Apps" list, I really hate it. How is it any better than Windows 95 where you had the Uninstall option right there in the Start menu's program folder, which when clicked on actually started the Uninstall! The only saving grace is that it actually is possible to directly uninstall by right clicking on Microsoft Store apps.
    • Truth, I use Windows 11 myself, but that is really just because I have always run the latest GA software, same reason why I ran Windows 8 and 8.1. I didn't really want to go from Windows 7 to 8, just like I didn't really want to go from 10 to 11...but in both cases, I didn't super hate it either, and as a techie, I like knowing my way around the latest options. I'm a little disappointed MS is dropping support for Windows 10 prior to Windows 12 coming out. Not just by a little bit, by all accounts, we are at least 1-2 years from even seeing Windows 12 beta, so it isn't just being missed by a few months. I like the idea of having a stable mostly unchanging OS option for those who don't want to be a guinea pig for all the newest hairbrained ideas. Windows 10 got a lot of hate in the early days for how rapidly it was changing, and rightfully so. For the last several years MS got it right by mostly leaving Windows 10 alone and making all those changes on Windows 11. It would have been nice if 11 could at least reach that longer-term stable state before Win10 went away.
  • Recent Achievements

    • Apprentice
      Wireless wookie went up a rank
      Apprentice
    • Week One Done
      bukro earned a badge
      Week One Done
    • One Year In
      Wulle earned a badge
      One Year In
    • One Month Later
      Wulle earned a badge
      One Month Later
    • One Month Later
      Simmo3D earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      609
    2. 2
      ATLien_0
      283
    3. 3
      +FloatingFatMan
      179
    4. 4
      Michael Scrip
      151
    5. 5
      Steven P.
      111
  • Tell a friend

    Love Neowin? Tell a friend!