Déterminer la durée pendant laquelle un poste de travail reste verrouillé est crucial pour diverses applications, notamment le suivi de l'activité des utilisateurs, les audits de sécurité et la surveillance des performances du système. Cet article détaille une méthode robuste utilisant le SessionSwitchEventHandler
en C#.
Le SessionSwitchEventHandler
permet à votre application de répondre aux modifications de session système, y compris les événements de verrouillage et de déverrouillage. L'extrait de code C# suivant le démontre :
<code class="language-csharp">using Microsoft.Win32; // ... other code ... Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch); private DateTime lockedTime; private TimeSpan duration; void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e) { switch (e.Reason) { case SessionSwitchReason.SessionLock: lockedTime = DateTime.Now; break; case SessionSwitchReason.SessionUnlock: duration = DateTime.Now - lockedTime; // Process the duration value (e.g., log it, display it) break; } } // ... rest of your application code ...</code>
Ce code enregistre un gestionnaire d'événements qui capture les événements SessionLock
et SessionUnlock
. Lors du verrouillage, l'heure actuelle est stockée. Le déverrouillage déclenche un calcul de durée (heure actuelle moins durée de verrouillage). Cet objet duration
TimeSpan peut ensuite être utilisé pour un traitement ultérieur : connexion à une base de données, affichage à l'utilisateur ou intégration dans d'autres systèmes de surveillance. Cela permet d’obtenir un enregistrement précis des périodes de verrouillage des postes de travail. L'intégration de cela avec d'autres outils de surveillance du système offre une vue globale de l'activité des utilisateurs et de l'utilisation des ressources du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!