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 Try System.IO.File.WriteAllText(PrintINI, Text) Catch ex As Exception MsgBox(ex.Message) End Try 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