Looks like you can do this with WMI. This requires a reference to System.Management
Code:
Function LoggedIn(ByVal strMach As String) As Boolean
Dim PROCNAME As String = "LoggedIn"
Dim Result As Boolean = False
Try
Dim scope As New ManagementScope("\\" & strMach & "\root\cimv2")
scope.Connect()
If scope.IsConnected Then
Try
Dim query As New ObjectQuery("SELECT UserName from Win32_ComputerSystem")
Using searcher As New ManagementObjectSearcher(scope, query)
Dim queryCollection As ManagementObjectCollection
queryCollection = searcher.Get()
For Each m As ManagementObject In queryCollection
Result = (Not m("UserName") Is Nothing)
Next
queryCollection.Dispose()
searcher.Dispose()
End Using
query = Nothing
Catch ex As Exception
MessageBox.Show(ex.Message & " on " & strMach, PROCNAME & " Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
scope = Nothing
End If
Catch ex As Exception
MessageBox.Show(ex.Message & " on " & strMach, PROCNAME & " Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return Result
End Function
Bookmarks