Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα window service το οποίο σε κάποια στιγμή θέλω να δω ότι δεν υπάρχει χρήστης ο οποίος να είναι Active. Με την χρήση της βιβλιοθήκης Cassia πήρα πια session είναι active καθώς και το ποιος έχει το actual console.

 

Το θέμα είναι ότι αν ένας χρήστης είναι locked συνεχίζει να είναι Active και έχει τον  Console. Πως μπορώ να βρω αν το session είναι locked?

 

Να αναφέρω ότι ξέρω πως μπορώ να κάνω override την OnSessionChange και να παρακολουθώ τι γίνεται. Αλλά θα ήθελα να μάθω αν μπορείς με κάποιος τρόπο να μάθεις αν ένα session είναι locked χωρίς να χρειαστεί η OnSessionChange

Δημοσ.

Γεια σου pagratios.

 

Μπορείς μέσω WMI να δεις πόσες φορές εκτελείται το LogonUI.exe για να διαπιστώσεις αν κάποιος είναι σε locked κατάσταση.

 

 

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Process WHERE Name = 'LogonUI.exe'");
                ManagementObjectCollection collection = searcher.Get();

                Console.WriteLine("Locked desktop user count:" + collection.Count.ToString());

 

Στη συνέχεια θα πρέπει να βρεις τρόπο για να κάνεις την αντιστοίχιση του κάθε LogonUI.exe process με τον χρήστη στον οποίο εκτελείται (πάλι μέσω WMI μπορεί να είναι εφικτό ή αν πάρεις το process id να μπορέσεις να βρεις άλλο τρόπο προγραμματιστικά).

 

Δυστυχώς δεν μπορώ στην παρούσα φάση να το ψάξω περισσότερο, αλλά ελπίζω να σε βοηθήσουν λίγο τα παραπάνω.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...