• 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

    • I would not mind paying 120 up to 150 dollars in this economy value of the dollar currency if their video game is quite breathtaking and excellent use of my hard earned work money. I think people need to appreciate all the effort workers and time that goes into excellent and worthy video games. Now if only the publishers and companies behind the video games would share the love with the developers those at the bottom of work making such games happen as in increase their money accounts and give them a more richer life that I wish would have happened . But how companies have bad reputation of being $$$ profit greedy I feel sad if there are any developers that feel unappreciated as in no real compensation for all the hours of work they put into a blockbuster hit . Have a great day everyone . Thank you developers engineers and programmers that make superb video games happen . You have my thanksgiving and I hope you really really appreciate my words . With you all about this
    • I guess they use the free version, which doesn't send money to any Russians.
    • True, you can pin it to the Start Menu, but my preference is to pin it to the Taskbar since I am using W11 on a desktop with a large display and a lot of space on the Taskbar.
    • 200 mph. Try going 200 mph with a vehicle on a street in any city in America. Good luck. Yes its speculation but so is the idea that it has been 100% approved by the government. When a new drug is under development it goes through a number of test phases, each of increasing efficacy and safety. I would imagine it is the same in this case. You can similuate real conditions on test roads with other cars and if successful on test roads you move it to the next test phase of testing it on real streets with human assistance if needed. Testing conditions on test roads can never account for all real life situations on real roads. This is what I imagine is happening now. The final test phase.
  • Recent Achievements

    • Week One Done
      Hartej earned a badge
      Week One Done
    • One Year In
      TsunadeMama earned a badge
      One Year In
    • Week One Done
      shaheen earned a badge
      Week One Done
    • Dedicated
      Cole Multipass earned a badge
      Dedicated
    • Week One Done
      Alexander 001 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      571
    2. 2
      ATLien_0
      185
    3. 3
      +FloatingFatMan
      183
    4. 4
      Skyfrog
      112
    5. 5
      Som
      106
  • Tell a friend

    Love Neowin? Tell a friend!