Zitat von
Sherlock:
Microsoft schon
So funktionieren halt Bildschirmschoner, oder das Sperren eines Arbeitsplatzes.
Da sieht man mal was die unter Arbeit verstehen
Zum Problem mit den modal Dialogen:
Ich hatte dasselbe Problem mal in einer .NET Anwendung unter Visual Studio. Meine Lösung bestand darin, alle Forms deiner Anwendung von einer Basisform abzuleiten, und den Konstructor und Destructor zu überschreiben. Bei jedem Create knallst du die Form in eine zentrale ObjectList rein, bei jedem Destroy schmeisst du sie wieder raus. Die List hat den Vorteil, dass sie, wenn sie von hinten nach vorn durchgearbeitet wird, dir die richtige Schliess-Reihenfolge der Fenster gibt.
Tritt jetzt also ein Timeout ein, so schliesse einfach alle Fenster aus der Liste im Application Event. Vergiss aber nicht zu überprüfen, ob das Close funktioniert, denn es kann unter gewissen Umständen nämlich fehlschlagen, z.B. wenn eine MessageBox grad noch geöffnet ist.
Ich bin damals sogar noch einen Schritt weiter gegangen. Statt über ein normales Close zu schliessen, habe ich eine virtuelle Methode ForceClose in der Basisform implementiert, die dann bei Bedarf noch in jeder Childform überschrieben werden kann, und eventuell noch z.B. Rollbacks in der Datenbank durchzuziehen.