Zorluğu Anlamak

Bir kullanıcının Windows’a ne kadar süredir giriş yaptığını bulmanız gerekti mi, özellikle de bu bilgiyi gerektiren bir yazılım geliştiriyorsanız? Eğer öyleyse, yalnız değilsiniz. Kullanıcı oturum sürelerini kontrol etmek basit görünse de, birçok geliştirici bunun için doğrudan bir API fonksiyonu bulmaya çalışırken zorluklar yaşayabilir.

Bu blog yazısında, mevcut kullanıcının Windows Vista’ya ne kadar süredir giriş yaptığını belirlemenin yollarını araştıracağız ve WMI sorguları ile Visual Basic Script (VBS) kullanarak pratik örnekler sunacağız.

Doğrudan API Eksikliği

Birçok geliştiricinin karşılaştığı ilk engel, giriş süresi bilgisini kolayca sağlayabilecek doğrudan bir API fonksiyonunun olmamasıdır. Ek olarak, Windows Yönetim Araçları (WMI) genellikle sağlam bir çözüm olsa da, buna aşina olmayanlar için zorlayıcı olabilir ve bu da potansiyel yeteneklerinden yararlanmalarını engelleyebilir.

Çözüm Genel Görünümü

Bu problemi çözmek için WMI kullanarak Win32_Session sınıfını sorgulayabiliriz; bu sınıf, kullanıcı oturumları hakkında ayrıntıları, başlangıç zamanları dahil olmak üzere tutar. Bu bölümde, bunu nasıl kolayca ayarlayacağımızı adım adım inceleyeceğiz.

WMI Kurulumu

Faydalı Kaynaklar

Koda dalmadan önce, WMI hakkında birkaç önemli kaynakla tanışmak faydalı olacaktır:

Win32_Session için Örnek Kod

Mevcut kullanıcının giriş süresini almak için basit bir VBS scripti yazabilirsiniz. İşte bunu gösteren bir örnek kod parçacığı:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set sessions = objWMIService.ExecQuery _
   ("select * from Win32_Session")

For Each objSession in sessions
   Wscript.Echo objSession.StartTime
Next

Oturumları Filtreleme

Kodu çalıştırdıktan sonra, birden fazla oturum döndüğünü görebilirsiniz. Etkileşimli kullanıcıya odaklanmak için, oturum nesnelerinin LogonType özelliğine dayalı filtreler uygulamayı düşünün. Bu şekilde, uygulamanız için en önemli olan oturumları izole edebilirsiniz.

Ek Kaynaklar

Daha fazla topluluk girdisi veya sorun giderme arıyorsanız, bu tartışmaya göz atın: Sysinternals Forum. Topluluklarla etkileşime geçmek genellikle ek içgörüler veya çözümler sunar.

Sonuç

Bir kullanıcının Windows’a ne kadar süredir giriş yaptığını belirlemek zorlayıcı görünebilir; ancak WMI ve VBS kullanarak bu görev yönetilebilir hale gelir. Kullanıcı etkinliğini izleyen bir uygulama geliştirmekte veya yalnızca idari amaçlar için ayrıntılar aramakta olsanız da, yukarıda sunulan yöntemler size ihtiyaç duyduğunuz içgörüleri sağlayabilir.

Bu çözümü uygulamanıza entegre edin ve Windows’ta kullanıcı oturumlarını daha iyi izleme yolunda ilerlemeye başlayın.