Ich habe mal versucht, mein Programm, wenn es sozusagen auf dem Desktop dahin dämmert und nichts zu tun hat, einfach abzuschalten. Dazu habe ich im Programm zwei Timer definiert: Dim WithEvents halfTime As Timer ' die halbe Wartezeit Dim WithEvents idleTimer As Timer ' die Wartezeit Im Load-Ereignis der Startform initialisiere ich diese Timer: idleTimer = New Timer() With {.Interval = 180000, .Enabled = True} ' 3 min AddHandler Application.Idle, AddressOf Application_Idle halfTime = New Timer() With {.Interval = idleTimer.Interval / 3, .Enabled = False} Das bedeutet: Hier jetzt das Ereignis für die halbe Wartezeit: Private Sub halfTime_Tick(sender As Object, e As EventArgs) _ Handles halfTime.Tick If WindowState <> FormWindowState.Minimized Then WindowState = FormWindowState.Minimized End If halfTime.Enabled = False End Sub Wenn die halbe Idle-Time (Wartezeit) vergangen ist, wird erst mal das Fenster der Startform minimiert. Ist die gesamte Idle-Time vergangen, also wurde mit dem Programm keine Bedien-Aktion mehr vorgenommen, wird die Funktion 'Application_Idle' ausgeführt: Private Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs) With idleTimer .Stop() .Start() If WindowState <> FormWindowState.Minimized Then halfTime.Enabled = True End If End With End Sub Der Code für den Timer idleTimer führt dann die endgültige Aktion aus: ' der Timer für das Idle-Verhalten Private Sub idleTimer_Tick(sender As Object, e As EventArgs) _ Handles idleTimer.Tick With idleTimer .Stop() .Dispose() End With RemoveHandler Application.Idle, AddressOf Application_Idle Close() Application.Exit() End Sub D.h.: Wenn die gesamte Idle-Time vergangen ist, wird die Application beendet. Dieser Tipp wurde bereits 5.729 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats September 2024 Dieter Otter Übergabeparameter: String oder Array? Mit der IsArray-Funktion lässt sich prüfen, ob es sich bei einem Übergabeparameter an eine Prozedur um ein Array oder einer "einfachen" Variable handelt. Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |