pagratios Δημοσ. 23 Σεπτεμβρίου 2015 Δημοσ. 23 Σεπτεμβρίου 2015 Έχω ένα window service το οποίο σε κάποια στιγμή θέλω να δω ότι δεν υπάρχει χρήστης ο οποίος να είναι Active. Με την χρήση της βιβλιοθήκης Cassia πήρα πια session είναι active καθώς και το ποιος έχει το actual console. Το θέμα είναι ότι αν ένας χρήστης είναι locked συνεχίζει να είναι Active και έχει τον Console. Πως μπορώ να βρω αν το session είναι locked? Να αναφέρω ότι ξέρω πως μπορώ να κάνω override την OnSessionChange και να παρακολουθώ τι γίνεται. Αλλά θα ήθελα να μάθω αν μπορείς με κάποιος τρόπο να μάθεις αν ένα session είναι locked χωρίς να χρειαστεί η OnSessionChange
anon667 Δημοσ. 24 Σεπτεμβρίου 2015 Δημοσ. 24 Σεπτεμβρίου 2015 Γεια σου 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 να μπορέσεις να βρεις άλλο τρόπο προγραμματιστικά). Δυστυχώς δεν μπορώ στην παρούσα φάση να το ψάξω περισσότερο, αλλά ελπίζω να σε βοηθήσουν λίγο τα παραπάνω.
pagratios Δημοσ. 24 Σεπτεμβρίου 2015 Μέλος Δημοσ. 24 Σεπτεμβρίου 2015 Ευχαριστώ για την απάντηση. Θα το δοκιμάσω!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα