Изменить код определения Даты и Времени последнего Логона Юзера - Visual Basic .NET
Формулировка задачи:
Всем привет! есть код:
Выводит в текстовые поля время и дату Логона (имя пользователя и время входа в систему)
Как можно переделать/допилить код для для того что бы еще имя пользователя вводилось с клавиатуры в текстовое поле по которому необходимо определить время последнего логона?
может у кого есть попоще код, без всяких лишних наворотов? Заранее спасибо за помощь!
Решение задачи: «Изменить код определения Даты и Времени последнего Логона Юзера»
textual
Листинг программы
Shared Function GetStartTime(machine As String, user As String) As Nullable(Of DateTime) Dim loggedOnUsers = New Dictionary(Of String, DateTime)(StringComparer.OrdinalIgnoreCase) Dim scope As ManagementScope = New ManagementScope(String.Format("\\{0}\root\cimv2", machine)) Dim sessionQuery As SelectQuery = New SelectQuery("Win32_LogonSession") Using sessionSearcher As ManagementObjectSearcher = New ManagementObjectSearcher(scope, sessionQuery) Using sessionMOs As ManagementObjectCollection = sessionSearcher.[Get]() For Each sessionMO In sessionMOs If CType(sessionMO.Properties("LogonType").Value, UInt32) = 2 Then Dim logonId = CStr(sessionMO.Properties("LogonId").Value) Dim startTimeString = CStr(sessionMO.Properties("StartTime").Value) Dim startTime = DateTime.ParseExact(startTimeString.Substring(0, 21), "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture) Dim userQuery As WqlObjectQuery = New WqlObjectQuery("ASSOCIATORS OF {Win32_LogonSession.LogonId='" & logonId & "'} WHERE AssocClass=Win32_LoggedOnUser") Using userSearcher = New ManagementObjectSearcher(scope, userQuery) Using userMOs = userSearcher.[Get]() Dim username = userMOs.OfType(Of ManagementObject)().[Select](Function(u) CStr(u.Properties("Name").Value)).FirstOrDefault() If Not loggedOnUsers.ContainsKey(username) Then loggedOnUsers.Add(username, startTime) ElseIf loggedOnUsers(username) > startTime Then loggedOnUsers(username) = startTime End If End Using End Using End If Next End Using End Using Dim result As DateTime If loggedOnUsers.TryGetValue(user, result) Then Return result Return Nothing End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д