dumbo
Goto Top

Windows Applikation nach 10 Minuten idle beenden

Hallo,

Problem:
User A nutzt Applikation A um auf die Dateien a-m zuzugreifen.
User B möchte Änderungen an den Dateien a-m vornehmen, was daran scheitert das User A Applikation A noch offen hat, aber
nicht mehr nutzt.

Lösung:
ein script was im Hintergrund läuft und Applikation A darauf überprüft ob sie idlet und wenn ja, nach 10 Minuten idle beendet.

Leider fehlen mir für VB/VBS die notwendigen Kenntnisse oder womit würde man dies normalerweise realisieren?

danke.

Content-ID: 57576

Url: https://administrator.de/contentid/57576

Ausgedruckt am: 26.11.2024 um 15:11 Uhr

SB-Admin
SB-Admin 28.04.2007 um 08:42:16 Uhr
Goto Top
Anwendungen können auf 2 Arten beendet werden

- Saubere Methode: durch Senden einer WM_SYSCOMMAND / SC_CLOSE Nachricht, dann kann es passieren, dass der Anwender gefragt wird, ob er Änderungen speichern will - er muss also darauf reagieren.

- "Brutale" Methode: Durch Beenden des Prozesses - der Anwender erhält keine Rückmeldung über eventuell nicht gespeicherte Dateien und gf. offene Handles werden nicht ordnungsgemäß geschlossen!

Wie stellt man fest, ob eine Anwendung 10 min lang nicht verwendet wurde? - Einzige Möglichkeit, die mir einfällt ist es, mittels SetWindowsHookEx einen Filter zu installieren, der Maus- und Tastatureingaben der Anwendung A abfängt, an eine von dir programmierte DLL weiterreicht, sie dort mit dem letzten Zeitstempel vergleicht, und anschließend an die Anwendung A weiter leitet. Sollten seit dem letzten Ereignis 10 min vergangen sein, beendest du die Anwendung A (Senden der WM_SYSCOMMAND/SC_CLOSE Nachricht [sauber] oder KillProcess [wirkungsvoll, aber möglicherweise gefährlich]).
Allerdings müsste die Funktion, die das überprüft, in einer DLL "sitzen"; es sind also Kenntnisse im Programmieren von DLLs erforderlich. Mit VB / VBS habe ich leider keine Erfahrung; würde für so etwas eher C++ vorsehen.