Outsider77
Erfahrenes Mitglied
Hallo!
Bei uns im Firmennetzwerk hängt ein PC, auf den mehrere Leute regelmäßig zugreifen müssen. Dies geschiet über Remote Desktop Verbindung. Um zu verhindern, dass einer den anderen rauswirft, wollte ich ein kleines Programm schreiben, welches checkt, ob einer der Leute gerade connected ist und wenn ja, die Möglichkeit für die anderen unterbindet. Bei einer bestehenden Verbindung wird ein Wert in eine .txt-Datei geschrieben, die dann wiederrum von einem anderen Programm ausgelesen wird. Es ist auch soweit fertig, allerdings besteht noch ein kleines Problem. Der Status und die ClientIP werden nur einmal ausgelesen und die Werte bleiben dann bestehen.
Dann habe ich mir noch einen Timer gebastelt, der diese Abfrage aller 15 Sekunden wiederholt.
Zum Testen des Programmes schreibt er mir in ein paar Labels den Status, die ClientIP und den fortlaufenden Timer.
Wie bekomme ich es hin, dass bei jedem Durchlauf die Werte neu ausgelesen werden. Denn momentan steht in der txt immer nur "Verbindung aktiv" (bzw in den Labels immer die selbe IP und der selbe Status), auch wenn gar keine der definierten IP's connected ist.
Danke schonmal vorab!
Gruß Outi
Bei uns im Firmennetzwerk hängt ein PC, auf den mehrere Leute regelmäßig zugreifen müssen. Dies geschiet über Remote Desktop Verbindung. Um zu verhindern, dass einer den anderen rauswirft, wollte ich ein kleines Programm schreiben, welches checkt, ob einer der Leute gerade connected ist und wenn ja, die Möglichkeit für die anderen unterbindet. Bei einer bestehenden Verbindung wird ein Wert in eine .txt-Datei geschrieben, die dann wiederrum von einem anderen Programm ausgelesen wird. Es ist auch soweit fertig, allerdings besteht noch ein kleines Problem. Der Status und die ClientIP werden nur einmal ausgelesen und die Werte bleiben dann bestehen.
Code:
Imports System.Net.NetworkInformation
Public Class Form1
Public Shared Sub GetTcpConnections()
Dim properties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
Dim connections As TcpConnectionInformation() = properties.GetActiveTcpConnections()
Dim t As TcpConnectionInformation
For Each t In connections
Dim ClientIP As String = t.RemoteEndPoint.ToString
Dim status As String
status = t.State
'hier folgen alle IP's, die Zugriff haben
If ClientIP = "" Or ClientIP = "" Then
My.Computer.FileSystem.WriteAllText("G:\stats.txt", "Verbindung aktiv", True)
Else
My.Computer.FileSystem.WriteAllText("G:\stats.txt", "Verbindung inaktiv", True)
End If
Next t
End Sub
End Class
Code:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim interval As Integer = 15000
Timer1.Interval = interval
Timer1.Start()
Call GetTcpConnections()
End Sub
Zum Testen des Programmes schreibt er mir in ein paar Labels den Status, die ClientIP und den fortlaufenden Timer.
Wie bekomme ich es hin, dass bei jedem Durchlauf die Werte neu ausgelesen werden. Denn momentan steht in der txt immer nur "Verbindung aktiv" (bzw in den Labels immer die selbe IP und der selbe Status), auch wenn gar keine der definierten IP's connected ist.
Danke schonmal vorab!
Gruß Outi
Zuletzt bearbeitet: