Wie kann eine modale VB6 Anwendung Bereinigung tun, wenn die Anwendung heruntergefahren wird?

StackOverflow https://stackoverflow.com/questions/123688

Frage

Eine VB6-Anwendung wird mit dem Interop Forms Toolkit mit Formularen in .NET geschrieben zu arbeiten. Die Dokumentation für das Toolkit berät auf dem Toolkit Aufruf eine Methode, das Toolkit zu beraten, wenn die VB6-Anwendung wird heruntergefahren.

Die VB6-Anwendung verwendet einen Sub Main Prozedur, die einen Splash-Screen lädt, zeigt dann mehrere modale Formulare. Wenn Sub Main abgeschlossen ist, wird die Anwendung noch läuft. Wie kann die Anwendung erkennt, dass es heruntergefahren und das Bereinigungsverfahren auf dem Toolkit nennen?

War es hilfreich?

Lösung

In einem Modul (wahrscheinlich das gleiche, das Sub Main enthält), erstellen Sie eine öffentliche Unter (z AppCleanUp), die Ihren Bereinigungscode halten wird.

Fügen Sie eine Klasse zu einem Projekt (z clsAppCleanup). In dieser Klasse fügen Sie Code in den Class_Terminate Event-Handler, der die Unter Sie im vorherigen Schritt erstellt aufruft.

In einem Modul (wahrscheinlich das gleiche, das Sub Main enthält), definieren eine Variable clsAppCleanup.

In Sub Main, instanziiert die clsAppCleanup.

Wenn die App heruntergefahren werden, das beenden Ereignis auf der Klasse wird der Bereinigungscode verursacht auszuführen.

Andere Tipps

Es ist eine Weile her, seit ich in VB6 geschrieben, aber wenn ich mich richtig erinnere können Sie das Unload-Ereignis verwenden, um Ihren Bereinigungscode zu nennen (es zu der Abschlussveranstaltung in .net ähnlich). Sie können auch überprüfen, dass es keine andere Formen noch in der VB6 app ausführen

Erstellen Sie ein Modul, das eine Formcount Variable enthält. Diese Variable wird von allen Formen in der Anwendung gemeinsam genutzt werden. Erhöhen Sie die Formcount Variable in jedem Form_Initialize-Methode des Formulars. Decrement Formcount in jedem Form_Terminate-Methode des Formulars. Wenn Formcount zurück auf 0 fällt, können Sie Ihre Form Toolkit informieren, dass die Formulare entladen wurde.

Sie müssen nicht über Multi-Thread-Probleme kümmern, weil VB6 Single-Threaded-Anwendungen erstellt, so eine Form der Initialize (oder beenden) -Methode vollständig ausgeführt werden, bevor andere Ausführung beginnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top