LogON LogOFF werden protokoliert
This commit is contained in:
275
Main.vb
275
Main.vb
@@ -1,10 +1,31 @@
|
||||
Public Class TSUserReporter
|
||||
Imports System.Environment
|
||||
Imports System.IO
|
||||
Public Class TSUserReporter
|
||||
|
||||
|
||||
Dim lastupdate As DateTime
|
||||
Dim StartTime As DateTime
|
||||
Public sNetlogon As String = "\\verag.ost.dmn\NETLOGON"
|
||||
Public Printer As New List(Of Drucker)
|
||||
Dim Standarddrucker As New Drucker("", "")
|
||||
Dim Bondrucker As New Drucker("", "")
|
||||
Public Message As String
|
||||
Dim ThinClient As String
|
||||
Dim isTS As Boolean = False
|
||||
Dim ID As String = ""
|
||||
|
||||
Private Sub TSUserReporter_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Me.Visible = False
|
||||
StartTime = Date.Now
|
||||
|
||||
Routine()
|
||||
|
||||
SetPrinterRoutine()
|
||||
|
||||
|
||||
FillLabel()
|
||||
ID = StartTime.ToString("dd.MM HH:mm:ss") & cRes.LocalUser.BenutzeranmeldeName
|
||||
LogLogOn()
|
||||
End Sub
|
||||
|
||||
Private Sub cmdGetLocalUser_Click(sender As Object, e As EventArgs) Handles cmdGetLocalUser.Click
|
||||
@@ -12,13 +33,49 @@
|
||||
End Sub
|
||||
|
||||
Sub Routine()
|
||||
cRes.LocalUser.FillWithLoggedOnUser()
|
||||
cRes.LocalTeamviewerID = getregkey()
|
||||
Try
|
||||
cRes.LocalUser.FillWithLoggedOnUser(True)
|
||||
cRes.LocalTeamviewerID = getregkey()
|
||||
cRes.LocalDomUser.getDomUserByBenutzerAnmeldename(Environment.UserDomainName, Environment.UserName)
|
||||
|
||||
Report()
|
||||
FillLabel()
|
||||
isTS = cRes.LocalUser.Hostname Like "TS*"
|
||||
'isTS = True
|
||||
'MsgBox(isTS)
|
||||
|
||||
Report()
|
||||
' FillLabel()
|
||||
|
||||
If cRes.LocalDomUser.du_autologoff = True And cRes.DisableAutoLogoff = False Then
|
||||
CheckAutoLogOffAndIfthenAutoLogOff()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
'MsgBox(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Sub LogLogOn()
|
||||
'Make ID
|
||||
|
||||
Try
|
||||
cSQL.InsertSQL("TbL_LogOnLogOffLog", "(Benutzeranmeldename, LogOn, TSServer, LogOff, ID) VALUES (
|
||||
'" & cRes.LocalUser.BenutzeranmeldeName & "',
|
||||
'" & Date.Now & "',
|
||||
'" & cRes.LocalUser.Hostname & "',
|
||||
' ',
|
||||
'" & ID & "')")
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Function CheckAutoLogOffAndIfthenAutoLogOff()
|
||||
|
||||
If cRes.LocalDomUser.du_autologofftime.TimeOfDay < DateTime.Now.TimeOfDay And DateTime.Now.TimeOfDay < cRes.LocalDomUser.du_autologofftime.AddMinutes(15).TimeOfDay Then
|
||||
Dim frm As New frmLogOff
|
||||
frm.Show()
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function getregkey()
|
||||
Dim Reg As String = Nothing
|
||||
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\TeamViewer", "ClientIDOfTSUser", Nothing) Is Nothing Then
|
||||
@@ -31,36 +88,73 @@
|
||||
End Function
|
||||
|
||||
Function Report()
|
||||
lastupdate = Date.Now
|
||||
Dim ds As New DataSet
|
||||
cSQL.SQL2DS("select * from TbL_TSSitzungen where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' ", ds)
|
||||
If Not ds.Tables(0).Rows.Count = 0 Then
|
||||
RemoveSitzung()
|
||||
End If
|
||||
cSQL.InsertSQL("TbL_TSSitzungen", "(Benutzeranmeldename, Name, TeamviewerID, LastReport, TSServer) VALUES (
|
||||
Try
|
||||
lastupdate = Date.Now
|
||||
Dim ds As New DataSet
|
||||
cSQL.SQL2DS("select * from TbL_TSSitzungen where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' AND TSServer = '" & cRes.LocalUser.Hostname & "'", ds)
|
||||
If Not ds.Tables(0).Rows.Count = 0 Then
|
||||
RemoveSitzung()
|
||||
End If
|
||||
If isTS Then
|
||||
Dim ds2 As New DataSet
|
||||
cSQL.SQL2DS("select * from [TbL_ThinClients] where Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & "'", ds2)
|
||||
'cSQL.SQL2DS("select * from [TbL_ThinClients] where Benutzeranmeldename = 'veragost\tw' ", ds2)
|
||||
If Not ds2.Tables(0).Rows.Count = 0 Then
|
||||
ThinClient = ds2.Tables(0).Rows(0).Item("ClientName").ToString
|
||||
End If
|
||||
End If
|
||||
|
||||
'MsgBox(ThinClient)
|
||||
|
||||
cSQL.InsertSQL("TbL_TSSitzungen", "(Benutzeranmeldename, Name, TeamviewerID, LastReport, Domain, Company, LastLogon, TSServer) VALUES (
|
||||
'" & cRes.LocalUser.BenutzeranmeldeName & "',
|
||||
'" & cRes.LocalUser.Name & "',
|
||||
'" & cRes.LocalTeamviewerID & "',
|
||||
'" & Date.Now & "',
|
||||
'" & cRes.LocalUser.Domäne & "',
|
||||
'" & cRes.LocalUser.Company & "',
|
||||
'" & StartTime.ToString("dd.MM HH:mm") & "',
|
||||
'" & cRes.LocalUser.Hostname & "')")
|
||||
Catch ex As Exception
|
||||
|
||||
MsgBox("Report():" & vbCrLf & ex.Message)
|
||||
End Try
|
||||
|
||||
SetUserEnviroment()
|
||||
|
||||
End Function
|
||||
|
||||
Function FillLabel()
|
||||
Label1.Text = ""
|
||||
Label1.Text &= cRes.LocalUser.BenutzeranmeldeName & vbCrLf
|
||||
Label1.Text &= cRes.LocalUser.Name & vbCrLf
|
||||
Label1.Text &= cRes.LocalUser.Hostname & vbCrLf
|
||||
Label1.Text &= "Hostname:" & cRes.LocalUser.Hostname & vbCrLf
|
||||
Label1.Text &= "ThinClient:" & ThinClient& & vbCrLf
|
||||
Label1.Text &= "TeamviewerID: " & cRes.LocalTeamviewerID & vbCrLf
|
||||
Label1.Text &= vbCrLf
|
||||
Label1.Text &= "Letzte Aktualisierung:" & vbCrLf
|
||||
Label1.Text &= lastupdate
|
||||
Label1.Text &= lastupdate & vbCrLf
|
||||
Label1.Text &= Standarddrucker.Druckername & vbCrLf
|
||||
Label1.Text &= Bondrucker.Druckername & vbCrLf & vbCrLf
|
||||
Label1.Text &= Message
|
||||
End Function
|
||||
|
||||
Sub RemoveSitzung()
|
||||
cSQL.DeleteSQL("TbL_TSSitzungen", "Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' ")
|
||||
cSQL.DeleteSQL("TbL_TSSitzungen", "Benutzeranmeldename = '" & cRes.LocalUser.BenutzeranmeldeName & " ' AND TSServer = '" & cRes.LocalUser.Hostname & "'")
|
||||
End Sub
|
||||
|
||||
Sub LogLogOff()
|
||||
Dim where As String = "ID = '" & ID & "'"
|
||||
Dim Values As String = "LogOff ='" & Date.Now & "'"
|
||||
Try
|
||||
cSQL.UpdateSQL("TbL_LogOnLogOffLog", Values, where)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub TSUserReporter_Closed(sender As Object, e As EventArgs) Handles Me.Closed
|
||||
LogLogOff()
|
||||
RemoveSitzung()
|
||||
End Sub
|
||||
|
||||
@@ -82,4 +176,155 @@
|
||||
Me.WindowState = WindowState.Minimized
|
||||
Me.Hide()
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateTimer_Tick(sender As Object, e As EventArgs) Handles UpdateTimer.Tick
|
||||
Routine()
|
||||
End Sub
|
||||
|
||||
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
|
||||
'If LoadDefaultPrinter(cRes.LocalUser.Hostname) Then
|
||||
' SetDefaultPrinter()
|
||||
' MsgBox(Drucker)
|
||||
'End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Function SetUserEnviroment()
|
||||
Try
|
||||
Environment.SetEnvironmentVariable("PC_SERVER", "pbx3.flashnet.at", EnvironmentVariableTarget.User)
|
||||
Environment.SetEnvironmentVariable("PC_USER", cRes.LocalDomUser.mit_username & "@verag", EnvironmentVariableTarget.User)
|
||||
'Environment.SetEnvironmentVariable("PC_PASS", cRes.LocalDomUser.mit_pwd, EnvironmentVariableTarget.User)
|
||||
' Environment.SetEnvironmentVariable("PC_USE_CUSTOM_NOTIFICATIONS_AS_DEFAULT", "ENA", EnvironmentVariableTarget.User)
|
||||
' MsgBox(Environment.GetEnvironmentVariable("PC_SErVER"))
|
||||
|
||||
Message = "UserEnv eingetragen."
|
||||
Catch ex As Exception
|
||||
Message = ex.Message
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function LoadDefaultPrinter(ByVal Hostname As String)
|
||||
Dim PrintINI As String = ""
|
||||
'If isTS Then
|
||||
' PrintINI = "C:\Users\" & cRes.LocalUser.Username & "\Documents\AVISO_OPTIONS.txt"
|
||||
' Try
|
||||
' Dim lines = IO.File.ReadAllLines(PrintINI)
|
||||
' Dim colCount = lines.First.Split(":"c).Length
|
||||
|
||||
' For Each line In lines
|
||||
' Dim objFields = From field In line.Split(":"c)
|
||||
|
||||
' 'Select Case objFields(0).ToString
|
||||
' ' Case Benutzername
|
||||
' If String.Compare("PRINTER", objFields(0).ToString, True) = 0 Then
|
||||
' Drucker = objFields(1).ToString
|
||||
' '_ConString = objFields(2).ToString
|
||||
' Return True
|
||||
' Exit Function
|
||||
' End If
|
||||
|
||||
' ' End Select
|
||||
' Next
|
||||
' Return False
|
||||
' Catch ex As Exception
|
||||
' ' MsgBox("Fehler beim Lesen TSAnmeldung.ini: " & vbCrLf & ex.Message)
|
||||
' End Try
|
||||
' Else
|
||||
PrintINI = sNetlogon & "\ClientDrucker.ini"
|
||||
Printer.Clear()
|
||||
Try
|
||||
Dim lines = IO.File.ReadAllLines(PrintINI)
|
||||
Dim colCount = lines.First.Split(";"c).Length
|
||||
|
||||
For Each line In lines
|
||||
Dim objFields = From field In line.Split(";"c)
|
||||
|
||||
'Select Case objFields(0).ToString
|
||||
' Case Benutzername
|
||||
If String.Compare(Hostname, objFields(0).ToString, True) = 0 Then
|
||||
Dim p As New Drucker(objFields(1).ToString, objFields(2).ToString)
|
||||
Printer.Add(p)
|
||||
'_ConString = objFields(2).ToString
|
||||
' Return True
|
||||
' Exit Function
|
||||
End If
|
||||
|
||||
' End Select
|
||||
Next
|
||||
If Printer.Count = 0 Then
|
||||
Dim p As New Drucker("kein Drucker hinterlegt", "")
|
||||
Printer.Add(p)
|
||||
Return False
|
||||
Else
|
||||
|
||||
Return True
|
||||
End If
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
' MsgBox("Fehler beim Lesen TSAnmeldung.ini: " & vbCrLf & ex.Message)
|
||||
End Try
|
||||
' End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function SetDefaultPrinter()
|
||||
For Each p As Drucker In Printer
|
||||
If p.Druckertype = "" Or p.Druckertype = "Standard" Then
|
||||
Standarddrucker = p
|
||||
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device", p.Druckername)
|
||||
ElseIf p.Druckertype = "Bon" Then
|
||||
Bondrucker = p
|
||||
End If
|
||||
Next
|
||||
writeoutAVISO_OPTIONS()
|
||||
End Function
|
||||
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
SetPrinterRoutine()
|
||||
FillLabel()
|
||||
End Sub
|
||||
|
||||
Sub SetPrinterRoutine()
|
||||
If isTS Then
|
||||
If LoadDefaultPrinter(ThinClient) Then
|
||||
SetDefaultPrinter()
|
||||
End If
|
||||
Else
|
||||
If LoadDefaultPrinter(cRes.LocalUser.Hostname) Then
|
||||
SetDefaultPrinter()
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Sub writeoutAVISO_OPTIONS()
|
||||
Dim PrintINI As String = "C:\Users\" & cRes.LocalUser.Username & "\Documents\AVISO_OPTIONS.txt"
|
||||
Dim Text As String = ""
|
||||
|
||||
If Printer.Count = 0 Then
|
||||
Text = ""
|
||||
Else
|
||||
Text = "PRINTER:" & Standarddrucker.Druckername & vbCrLf
|
||||
Text &= "BON:" & Bondrucker.Druckername
|
||||
End If
|
||||
|
||||
My.Computer.FileSystem.WriteAllText(PrintINI, Text, False)
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Drucker
|
||||
Property Druckername As String = ""
|
||||
Property Druckertype As String = ""
|
||||
|
||||
Sub New(a As String, b As String)
|
||||
Me.Druckername = a
|
||||
Me.Druckertype = b
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user