331 lines
11 KiB
VB.net
331 lines
11 KiB
VB.net
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
|
|
Routine()
|
|
End Sub
|
|
|
|
Sub Routine()
|
|
Try
|
|
cRes.LocalUser.FillWithLoggedOnUser(True)
|
|
cRes.LocalTeamviewerID = getregkey()
|
|
cRes.LocalDomUser.getDomUserByBenutzerAnmeldename(Environment.UserDomainName, Environment.UserName)
|
|
|
|
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
|
|
Reg = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TeamViewer", "ClientID", Nothing)
|
|
Else
|
|
Reg = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\TeamViewer", "ClientIDOfTSUser", Nothing)
|
|
End If
|
|
|
|
Return Reg
|
|
End Function
|
|
|
|
Function Report()
|
|
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 &= "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 & 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 & " ' 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
|
|
|
|
Private Sub ReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReportToolStripMenuItem.Click
|
|
Routine()
|
|
End Sub
|
|
|
|
Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub ReporterAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReporterAnzeigenToolStripMenuItem.Click
|
|
Me.Show()
|
|
Me.WindowState = WindowState.Normal
|
|
Me.Show()
|
|
End Sub
|
|
|
|
Private Sub cmdMini_Click(sender As Object, e As EventArgs) Handles cmdMini.Click
|
|
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
|