• 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

    • So, do nothing basically, as long as you deploy Windows Updates? Pretty much yeah. Some Linux distros distribute update the secureboot certs as well, assuming you do use SecureBoot.
    • On one hand, YouTube videos are filled with so much fillers and the Youtubers intentionally speak slowly to increase video time and "engagement" metrics. On the other, Google's asking you to not stay on their site for longer. That's a win-win for viewers. So, I think it'll be axed or de-emphasised in the near future.
    • They'll just repurpose that for their AI trainings. Its never enough for LLMs.
    • Ubuntu gets second-ever snapshot release for Questing Quokka by Paul Hill Canonical has announced the release of Ubuntu 25.10 Questing Quokka Snapshot 2, a monthly development build that gives testers and developers a base from which to work on software for the upcoming release. Snapshot 1 was released at the end of May and Snapshot 3 is scheduled for July 31. Notably, the release date of Snapshot 2 and 3 have moved since last month. The Snapshot 2 update is available for various Ubuntu spins, such as Kubuntu and Lubuntu. To download, head to Ubuntu CD Image and go to the link for the version you want, such as ubuntu/. Once you’ve picked, go to releases/ > 25.10/ > snapshot-2/ and download the appropriate image for your computer - most people will want ‘64-bit PC (AMD64) desktop image’. The announcement mentions that these snapshot builds are not production ready, so you should not be installing them on a machine you use to do your work and daily computing. Canonical said that these builds should be seen as “throwaway artifacts”, whatever that means. If you’re an Ubuntu developer, you should submit your changes in the Ubuntu archive by July 28 to see it in the third snapshot. If you make any changes, Canonical asks you to update the Release Notes with the updates that you have worked on, so everyone knows what changed. Speaking of release notes, Canonical has been updating them incrementally. So far, we know that GNOME 48 is being used alongside the Linux 6.14 kernel. The use of GNOME 48 means that Ubuntu 25.10 only supports Wayland sessions as X.org has finally been dropped. Wayland has been used for a while on Ubuntu, so most people shouldn't have any issues as a result of the switchover. If you want to try out Ubuntu 25.10 Snapshot 2, you can find the download links over on the Ubuntu website. Just remember, these are not intended to be used on production machines!
  • Recent Achievements

    • Week One Done
      Marites earned a badge
      Week One Done
    • One Year In
      runge100 earned a badge
      One Year In
    • One Month Later
      runge100 earned a badge
      One Month Later
    • One Month Later
      jfam earned a badge
      One Month Later
    • First Post
      TheRingmaster earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      559
    2. 2
      +FloatingFatMan
      177
    3. 3
      ATLien_0
      168
    4. 4
      Michael Scrip
      125
    5. 5
      Xenon
      118
  • Tell a friend

    Love Neowin? Tell a friend!