diff --git a/Class2.vb b/Class2.vb
new file mode 100644
index 0000000..b663058
--- /dev/null
+++ b/Class2.vb
@@ -0,0 +1,41 @@
+Public Class Class1
+ Public sAppPath As String = Application.StartupPath
+ 'Public Shared DBConString As String = "Server=NBMIESENBECK\SPIELWIESE;Initial Catalog=Doku;User ID=sa;Password=verag#3;Connection Timeout=5;"
+
+ Public Shared DBConstringDev As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ Public Shared DBADMINBuchhaltung As String = "Data Source=SQLGuide01.verag.ost.dmn;Initial Catalog=ADMIN;Integrated Security=false;User ID=sa;Password=BmWr501956;"
+ Public Shared DBAdmin As String = "[SQLGuide01.verag.ost.dmn].ADMIN"
+ Public Shared DBDoku As String = "Server=SQLGuide01.verag.ost.dmn\Verag;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ 'Public Shared DBDoku As String = "Server=dokusql.verag.ost.dmn\sqlexpress;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ Public Shared DBDokuTest As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ 'Public Shared FilePath As String = "\\192.168.0.253\backup\temp_Sebastian\Spielwiese\Doku"
+ Public Shared FilePath As String ' = "\\192.168.0.90\f\EDV-Wartung\Dokumentation"
+ Public Shared Absender As String = "Absender Standard"
+ 'Public Shared sAppPath As String = Application.StartupPath
+
+ Public Shared DBConString As String = DBDoku
+
+ Public Shared Standorte As New List(Of String)
+ Public Shared AlleStandorte As New List(Of String)
+ Public Shared LoggedOnUser As New cBenutzer
+
+ Public Shared LoggedOnUserisAdmin As Boolean = False
+ Public Shared DebugMode As Boolean = False
+ Public Shared DebugText As String = ""
+ Public Shared GroupUsers As List(Of cBenutzer)
+ Public Shared dtSuchergebnis As DataTable
+ Public Shared TeamviewerToken As String = "6920997-rtea7sZy35Ujw2Erm3OP"
+
+ Public Shared HostList As New List(Of String)
+ Public Shared TerminalServerList As New List(Of String)
+
+ Public Shared Function DBNull2emptyString(totest As Object)
+
+ If IsDBNull(totest) Then
+ Return ""
+ Else
+ Return totest
+ End If
+
+ End Function
+End Class
diff --git a/Main.Designer.vb b/Main.Designer.vb
index aa6888b..73e61c6 100644
--- a/Main.Designer.vb
+++ b/Main.Designer.vb
@@ -28,17 +28,20 @@ Partial Class TSUserReporter
Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components)
Me.ContextMenuStripIcon = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ReportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
- Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ReporterAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
+ Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.Label1 = New System.Windows.Forms.Label()
+ Me.UpdateTimer = New System.Windows.Forms.Timer(Me.components)
+ Me.btnTest = New System.Windows.Forms.Button()
+ Me.Button1 = New System.Windows.Forms.Button()
Me.cmdMini = New System.Windows.Forms.Button()
Me.ContextMenuStripIcon.SuspendLayout()
Me.SuspendLayout()
'
'cmdGetLocalUser
'
- Me.cmdGetLocalUser.Location = New System.Drawing.Point(12, 123)
+ Me.cmdGetLocalUser.Location = New System.Drawing.Point(12, 161)
Me.cmdGetLocalUser.Name = "cmdGetLocalUser"
Me.cmdGetLocalUser.Size = New System.Drawing.Size(199, 23)
Me.cmdGetLocalUser.TabIndex = 0
@@ -64,12 +67,6 @@ Partial Class TSUserReporter
Me.ReportToolStripMenuItem.Size = New System.Drawing.Size(169, 22)
Me.ReportToolStripMenuItem.Text = "Report"
'
- 'BeendenToolStripMenuItem
- '
- Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem"
- Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(169, 22)
- Me.BeendenToolStripMenuItem.Text = "Beenden"
- '
'ReporterAnzeigenToolStripMenuItem
'
Me.ReporterAnzeigenToolStripMenuItem.Name = "ReporterAnzeigenToolStripMenuItem"
@@ -81,6 +78,12 @@ Partial Class TSUserReporter
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(166, 6)
'
+ 'BeendenToolStripMenuItem
+ '
+ Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem"
+ Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(169, 22)
+ Me.BeendenToolStripMenuItem.Text = "Beenden"
+ '
'Label1
'
Me.Label1.AutoSize = True
@@ -90,6 +93,30 @@ Partial Class TSUserReporter
Me.Label1.TabIndex = 2
Me.Label1.Text = "Label1"
'
+ 'UpdateTimer
+ '
+ Me.UpdateTimer.Enabled = True
+ Me.UpdateTimer.Interval = 300000
+ '
+ 'btnTest
+ '
+ Me.btnTest.Location = New System.Drawing.Point(136, 132)
+ Me.btnTest.Name = "btnTest"
+ Me.btnTest.Size = New System.Drawing.Size(75, 23)
+ Me.btnTest.TabIndex = 4
+ Me.btnTest.Text = "Test"
+ Me.btnTest.UseVisualStyleBackColor = True
+ Me.btnTest.Visible = False
+ '
+ 'Button1
+ '
+ Me.Button1.Image = Global.TSUserReporter.My.Resources.Resources.Print20x20
+ Me.Button1.Location = New System.Drawing.Point(168, 38)
+ Me.Button1.Name = "Button1"
+ Me.Button1.Size = New System.Drawing.Size(43, 23)
+ Me.Button1.TabIndex = 5
+ Me.Button1.UseVisualStyleBackColor = True
+ '
'cmdMini
'
Me.cmdMini.Image = Global.TSUserReporter.My.Resources.Resources.del
@@ -103,8 +130,10 @@ Partial Class TSUserReporter
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(219, 157)
+ Me.ClientSize = New System.Drawing.Size(219, 196)
Me.ControlBox = False
+ Me.Controls.Add(Me.Button1)
+ Me.Controls.Add(Me.btnTest)
Me.Controls.Add(Me.cmdMini)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.cmdGetLocalUser)
@@ -128,4 +157,7 @@ Partial Class TSUserReporter
Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents Label1 As Label
Friend WithEvents cmdMini As Button
+ Friend WithEvents UpdateTimer As Timer
+ Friend WithEvents btnTest As Button
+ Friend WithEvents Button1 As Button
End Class
diff --git a/Main.resx b/Main.resx
index bda4d42..3a4dc32 100644
--- a/Main.resx
+++ b/Main.resx
@@ -1256,6 +1256,9 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+ 306, 17
+
AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAMMOAADDDgAAAAAAAAAA
diff --git a/Main.vb b/Main.vb
index 5450c10..c9538a3 100644
--- a/Main.vb
+++ b/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
diff --git a/My Project/Application.Designer.vb b/My Project/Application.Designer.vb
index fac78ef..3225758 100644
--- a/My Project/Application.Designer.vb
+++ b/My Project/Application.Designer.vb
@@ -25,7 +25,7 @@ Namespace My
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
- Me.EnableVisualStyles = true
+ Me.EnableVisualStyles = false
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
diff --git a/My Project/Application.myapp b/My Project/Application.myapp
index 5566167..98c634d 100644
--- a/My Project/Application.myapp
+++ b/My Project/Application.myapp
@@ -4,7 +4,7 @@
TSUserReporter
false
0
- true
+ false
0
true
\ No newline at end of file
diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb
index 842cdd9..97acf6f 100644
--- a/My Project/Resources.Designer.vb
+++ b/My Project/Resources.Designer.vb
@@ -69,5 +69,15 @@ Namespace My.Resources
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
+
+ '''
+ ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property Print20x20() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("Print20x20", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
End Module
End Namespace
diff --git a/My Project/Resources.resx b/My Project/Resources.resx
index d2501f0..1187221 100644
--- a/My Project/Resources.resx
+++ b/My Project/Resources.resx
@@ -121,4 +121,7 @@
..\Resources\del.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Print20x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/My Project/Settings.Designer.vb b/My Project/Settings.Designer.vb
index 99f0fcb..9a65ce9 100644
--- a/My Project/Settings.Designer.vb
+++ b/My Project/Settings.Designer.vb
@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
'
'------------------------------------------------------------------------------
@@ -13,42 +13,42 @@ Option Explicit On
Namespace My
-
- _
+
+ _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
-
- Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
-
-#Region "My.Settings Auto-Save Functionality"
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Automatische My.Settings-Speicherfunktion"
#If _MyType = "WindowsForms" Then
- Private Shared addedHandler As Boolean
+ Private Shared addedHandler As Boolean
- Private Shared addedHandlerLockObject As New Object
+ Private Shared addedHandlerLockObject As New Object
- _
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
- If My.Application.SaveMySettingsOnExit Then
- My.Settings.Save()
- End If
- End Sub
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
#End If
#End Region
-
+
Public Shared ReadOnly Property [Default]() As MySettings
Get
-
+
#If _MyType = "WindowsForms" Then
- If Not addedHandler Then
- SyncLock addedHandlerLockObject
- If Not addedHandler Then
- AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
- addedHandler = True
- End If
- End SyncLock
- End If
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
#End If
Return defaultInstance
End Get
@@ -57,13 +57,13 @@ Namespace My
End Namespace
Namespace My
-
- _
+
+ _
Friend Module MySettingsProperty
-
- _
+
+ _
Friend ReadOnly Property Settings() As Global.TSUserReporter.My.MySettings
Get
Return Global.TSUserReporter.My.MySettings.Default
diff --git a/Resources/Print20x20.png b/Resources/Print20x20.png
new file mode 100644
index 0000000..bd83b69
Binary files /dev/null and b/Resources/Print20x20.png differ
diff --git a/TSUserReporter.vbproj b/TSUserReporter.vbproj
index e0cb9e4..3ec8bb3 100644
--- a/TSUserReporter.vbproj
+++ b/TSUserReporter.vbproj
@@ -78,12 +78,14 @@
+
+
@@ -100,8 +102,16 @@
+
+
+
+ frmLogOff.vb
+
+
+ Form
+
Form
@@ -126,6 +136,9 @@
+
+ frmLogOff.vb
+
Main.vb
@@ -150,6 +163,7 @@
+
diff --git a/cBenutzer.vb b/cBenutzer.vb
index e6d0748..be0125a 100644
--- a/cBenutzer.vb
+++ b/cBenutzer.vb
@@ -16,9 +16,11 @@ Public Class cBenutzer
Property localdistinguishedName As String = ""
Property suchname As String = ""
Property Hostname As String = ""
+ Property Company As String = ""
+ Property Username As String = ""
-
+ 'test
Function FillWithLoggedOnUser(Optional ByVal dcabfrage As Boolean = False, Optional ByVal LDAPa As String = "") '"LDAP://DC=VERAG,DC=OST,DC=DMN")
@@ -30,9 +32,10 @@ Public Class cBenutzer
End Try
Domäne = System.DirectoryServices.ActiveDirectory.Domain.GetCurrentDomain.ToString
BenutzeranmeldeName = Environment.UserDomainName & "\" & Environment.UserName
+ Username = Environment.UserName
If dcabfrage = True Then
- 'cRes.DebugText = userPrincipalName & LDAPa
+ 'Class1.DebugText = userPrincipalName & LDAPa
FillFromDC(userPrincipalName, "userPrincipalName", LDAPa)
End If
End Function
@@ -96,6 +99,7 @@ Public Class cBenutzer
.PropertiesToLoad.Add("distinguishedName")
.PropertiesToLoad.Add("msDS-PrincipalName")
.PropertiesToLoad.Add("userPrincipalName")
+ .PropertiesToLoad.Add("company")
End With
Dim Result As DirectoryServices.SearchResult = searcher.FindOne
@@ -110,6 +114,7 @@ Public Class cBenutzer
Me.BenutzeranmeldeName = blablabla(Result, "msDS-PrincipalName")
Me.msDSPrincipalName = blablabla(Result, "msDS-PrincipalName")
Me.userPrincipalName = blablabla(Result, "userPrincipalName")
+ Me.Company = blablabla(Result, "company")
Catch ex As Exception
MsgBox("FillFromDC: " & ex.Message)
diff --git a/cDomUser.vb b/cDomUser.vb
new file mode 100644
index 0000000..f03a804
--- /dev/null
+++ b/cDomUser.vb
@@ -0,0 +1,258 @@
+Imports System.Reflection
+
+Public Class cDomUser
+
+ Property du_ID As String = ""
+ Property du_Email_Activated As Boolean = False
+ Property du_EMail As String = ""
+ Property du_Vorname As String = ""
+ Property du_Nachname As String = ""
+ Property du_Abteilung As String = ""
+ Property du_TelNummer As String = ""
+ Property du_DW As String = ""
+ Property du_Kennwort As String = ""
+ Property du_Dom As String = ""
+ Property du_sAMAc As String = ""
+ Property du_Info As String = ""
+ Property du_autologoff As Boolean = False
+ Property du_autologofftime As DateTime
+ Property mit_username As String = ""
+ Property mit_pwd As String = ""
+ '-----------------------------------------
+ Dim SelectItems As String = ""
+ Public Exist As Boolean = False
+
+ Public Sub New()
+ SelectItems = Selectinator3000(getparameterlistMaster())
+ ' MsgBox(SelectItems)
+ End Sub
+
+
+ Function getparameterlistMaster() As List(Of SQLVariable)
+ Dim list As New List(Of SQLVariable)
+
+ list.Add(New SQLVariable("du_ID", du_ID))
+ list.Add(New SQLVariable("du_Email_Activated", du_Email_Activated))
+ list.Add(New SQLVariable("du_EMail", du_EMail))
+ list.Add(New SQLVariable("du_Vorname", du_Vorname))
+ list.Add(New SQLVariable("du_Nachname", du_Nachname))
+ list.Add(New SQLVariable("du_Abteilung", du_Abteilung))
+ list.Add(New SQLVariable("du_TelNummer", du_TelNummer))
+ list.Add(New SQLVariable("du_DW", du_DW))
+ list.Add(New SQLVariable("du_Kennwort", du_Kennwort))
+ list.Add(New SQLVariable("du_Dom", du_Dom))
+ list.Add(New SQLVariable("du_sAMAc", du_sAMAc))
+ list.Add(New SQLVariable("du_Info", du_Info))
+ list.Add(New SQLVariable("du_autologoff", du_autologoff))
+ list.Add(New SQLVariable("du_autologofftime", du_autologofftime))
+ list.Add(New SQLVariable("mit_username", mit_username))
+ list.Add(New SQLVariable("mit_pwd", mit_pwd))
+ Return list
+ End Function
+
+ Public Function getDomUser(Filterspalte As String, Filterbegriff As String)
+ Dim ds As New DataSet
+
+ cSQL.SQL2DS("select " & SelectItems & " from [SQLGuide01.verag.ost.dmn].doku.dbo.tbl_domuser as Doku left join [SQLGuide01.verag.ost.dmn].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc where " & Filterspalte & "= '" & Filterbegriff & "'", ds)
+
+ If ds.Tables(0).Rows.Count > 0 Then Exist = True
+
+ For Each c As DataColumn In ds.Tables(0).Columns
+ Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName)
+ If propInfo IsNot Nothing Then
+ If Not IsDBNull(c.Table.Rows(0).Item(c)) Then
+ propInfo.SetValue(Me, c.Table.Rows(0).Item(c))
+ End If
+ End If
+ Next
+ ' MsgBox("hier")
+ End Function
+
+ Public Function getDomUserByID(ID As String)
+ Dim ds As New DataSet
+
+ cSQL.SQL2DS("select " & SelectItems & " from [SQLGuide01.verag.ost.dmn].doku.dbo.tbl_domuser as Doku left join [SQLGuide01.verag.ost.dmn].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc WHERE du_ID = '" & ID & "'", ds)
+
+ If ds.Tables(0).Rows.Count > 0 Then Exist = True
+
+ For Each c As DataColumn In ds.Tables(0).Columns
+ Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName)
+ If propInfo IsNot Nothing Then
+ If Not IsDBNull(c.Table.Rows(0).Item(c)) Then
+ propInfo.SetValue(Me, c.Table.Rows(0).Item(c))
+ End If
+ End If
+ Next
+ ' MsgBox("hier")
+ End Function
+
+ Public Function getDomUserByBenutzerAnmeldename(Dom As String, Username As String)
+ Dim ds As New DataSet
+ Try
+
+
+ cSQL.SQL2DS("select " & SelectItems & " from [SQLGuide01.verag.ost.dmn].doku.dbo.tbl_domuser as Doku left join [SQLGuide01.verag.ost.dmn].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc WHERE du_Dom = '" & Dom & "' AND du_sAMAc = '" & Username & "'", ds)
+
+ If ds.Tables(0).Rows.Count > 0 Then Exist = True
+ If ds.Tables(0).Rows.Count = 0 Then Exit Function
+ 'MsgBox("getDomUserByBenutzerAnmeldename" & Dom & vbCrLf & ds.Tables(0).Rows.Count & Username & vbCrLf)
+
+
+ For Each c As DataColumn In ds.Tables(0).Columns
+ Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName)
+ If propInfo IsNot Nothing Then
+ If Not IsDBNull(c.Table.Rows(0).Item(c)) Then
+ propInfo.SetValue(Me, c.Table.Rows(0).Item(c))
+ End If
+ End If
+ Next
+
+ Catch ex As Exception
+ 'MsgBox("getDomUserByBenutzerAnmeldename" & Dom & vbCrLf & ds.Tables(0).Rows.Count & Username & vbCrLf & ex.Message)
+ End Try
+
+ ' MsgBox("hier")
+ End Function
+
+ Public Function Save()
+ If du_sAMAc = "" Or du_Dom = "" Then
+ MsgBox("Domänen-Benutzer und Domäne sind Pflichtfelder!") : Exit Function
+ End If
+
+ If CheckExist() = True Then
+ '-------------------------------------------------------------------------Update
+ Dim update, where As String
+ Dim list = getparameterlistMaster()
+ For Each i In list
+ If i.SQLText = "mit_pwd" Or i.SQLText = "mit_username" Then
+ ElseIf Not i.SQLText = "du_ID" Then
+ update &= "[" & i.SQLText & "]='" & i.SQLValue & "',"
+ Else
+ where &= "du_ID = '" & i.SQLValue & "'"
+ End If
+ Next
+ update = update.Substring(0, update.Length - 1)
+ cSQL.UpdateSQL("TbL_DomUser", update, where, Class1.DBDoku)
+
+ ElseIf CheckExist() = -1 Then
+ Exit Function
+ Else
+ '-------------------------------------------------------------------------Insert
+ Dim Spalten As String = ""
+ Dim Werte As String = ""
+ Dim InsertString As String = ""
+ du_ID = Guid.NewGuid().ToString("N")
+ Dim List As List(Of SQLVariable) = getparameterlistMaster()
+ For Each i In List
+ If i.SQLText = "mit_pwd" Or i.SQLText = "mit_username" Then
+ Else
+ Spalten &= i.SQLText & ","
+ Werte &= "'" & i.SQLValue & "',"
+ End If
+ Next
+ Spalten = Spalten.Substring(0, Spalten.Length - 1)
+ Werte = Werte.Substring(0, Werte.Length - 1)
+
+ cSQL.InsertSQL("TbL_DomUser", "(" & Spalten & ") VALUES (" & Werte & ")", Class1.DBDoku)
+ End If
+
+ End Function
+
+ Function CheckExist() As Boolean
+ Dim ds As New DataSet
+ cSQL.SQL2DS("select * from Doku.dbo.TbL_DomUser where du_ID = '" & du_ID & "'", ds, Class1.DBADMINBuchhaltung)
+
+ If ds.Tables(0).Rows.Count > 0 Then
+ Return True
+ Else
+ Dim dsa As New DataSet
+ cSQL.SQL2DS("select * from Doku.dbo.TbL_DomUser where du_sAMAc = '" & du_sAMAc & "' AND du_Dom = '" & du_Dom & "'", dsa, Class1.DBADMINBuchhaltung)
+ If dsa.Tables(0).Rows.Count > 0 Then
+ If MsgBox("Achtung! Die Kombination aus Domäne und Benutzer existiert bereits! Trotzdem speichern?", MsgBoxStyle.YesNo, "Speichern...") = MsgBoxResult.No Then
+ Return -1
+ Exit Function
+ End If
+
+ End If
+ Return False
+ End If
+ End Function
+ Public Function getFromAvisoUser(Optional ByVal AvisoUser As String = "")
+ If AvisoUser = "" Then
+ AvisoUser = Me.mit_username
+ End If
+
+ Dim ds As New DataSet
+ cSQL.SQL2DS("select * from ADMIN.dbo.tblMitarbeiter where mit_username = '" & AvisoUser & "'", ds, Class1.DBADMINBuchhaltung)
+
+ If ds.Tables(0).Rows.Count = 0 Then MsgBox("Benutzer nicht gefunden.") : Exit Function
+ If ds.Tables(0).Rows.Count = 1 Then
+ du_EMail = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_email"))
+ If du_EMail.Length > 1 Then du_Email_Activated = True
+ mit_username = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_username"))
+ mit_pwd = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_pwd"))
+ du_Vorname = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_vname"))
+ du_Nachname = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_nname"))
+ du_Abteilung = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_abteilung"))
+ du_TelNummer = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_mobiltel"))
+ du_DW = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_durchwahl"))
+ du_Dom = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_aliasad_domain"))
+ du_sAMAc = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_aliasad_username"))
+ End If
+
+ Exist = True
+
+ ' MsgBox(du_EMail)
+ End Function
+
+ Public Function getFromAvisoUserLIST(AvisoUser As String)
+ Dim ds As New DataSet
+ Dim AvisoUserList As New List(Of cDomUser)
+ cSQL.SQL2DS("select * from ADMIN.dbo.tblMitarbeiter where mit_username = '" & AvisoUser & "'", ds, Class1.DBADMINBuchhaltung)
+ For Each row As DataRow In ds.Tables(0).Rows
+ Dim tempdu As New cDomUser
+ tempdu.du_EMail = Class1.DBNull2emptyString(row.Item("mit_email"))
+ If tempdu.du_EMail.Length > 1 Then tempdu.du_Email_Activated = True
+ tempdu.mit_username = Class1.DBNull2emptyString(row.Item("mit_username"))
+ tempdu.mit_pwd = Class1.DBNull2emptyString(row.Item("mit_pwd"))
+ tempdu.du_Vorname = Class1.DBNull2emptyString(row.Item("mit_vname"))
+ tempdu.du_Nachname = Class1.DBNull2emptyString(row.Item("mit_nname"))
+ tempdu.du_Abteilung = Class1.DBNull2emptyString(row.Item("mit_abteilung"))
+ tempdu.du_TelNummer = Class1.DBNull2emptyString(row.Item("mit_mobiltel"))
+ tempdu.du_DW = Class1.DBNull2emptyString(row.Item("mit_durchwahl"))
+ tempdu.du_Dom = Class1.DBNull2emptyString(row.Item("mit_aliasad_domain"))
+ tempdu.du_sAMAc = Class1.DBNull2emptyString(row.Item("mit_aliasad_username"))
+ AvisoUserList.Add(tempdu)
+ Next
+ Return AvisoUserList
+ End Function
+
+ Public Function Selectinator3000(varlist As List(Of SQLVariable)) As String
+ Dim Ding As String = ""
+
+ For Each var In varlist
+ Ding &= var.SQLText & ", "
+ Next
+ Ding = Ding.Substring(0, (Ding.Length - 2))
+
+ Return Ding
+ End Function
+
+ Public Function Delete()
+ If MsgBox("Benutzer " & du_Vorname & " " & du_Nachname & ", " & du_sAMAc & " löschen?", MsgBoxStyle.OkCancel, "Benutzer löschen?") = MsgBoxResult.Ok Then
+ cSQL.DeleteSQL("Doku.dbo.TbL_DomUser", "du_ID = '" & du_ID & "'", Class1.DBADMINBuchhaltung)
+ Else
+ Exit Function
+ End If
+ End Function
+
+ Public Shared Function Delete(ID As String)
+ If MsgBox("Benutzer löschen?", MsgBoxStyle.OkCancel, "Benutzer löschen?") = MsgBoxResult.Ok Then
+ cSQL.DeleteSQL("Doku.dbo.TbL_DomUser", "du_ID = '" & ID & "'", Class1.DBADMINBuchhaltung)
+ Else
+ Exit Function
+ End If
+ End Function
+
+
+End Class
diff --git a/cRes.vb b/cRes.vb
index 86b69c4..91b2fa5 100644
--- a/cRes.vb
+++ b/cRes.vb
@@ -1,8 +1,12 @@
Public Class cRes
- Public Shared DBConString As String = "Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ Public Shared DBConString As String = "Server=sqlcluster.verag.ost.dmn\verag;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
+ 'Public Shared DBConString As String = "Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
Public Shared DBConstringDev As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
Public Shared LocalUser As New cBenutzer
Public Shared LocalTeamviewerID As String
+ Public Shared LocalDomUser As New cDomUser
+
+ Public Shared DisableAutoLogoff As Boolean = False
End Class
diff --git a/cSQL.vb b/cSQL.vb
index 8cc7799..14ca097 100644
--- a/cSQL.vb
+++ b/cSQL.vb
@@ -1,22 +1,28 @@
Imports System.Data.SqlClient
Public Class cSQL
- Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet)
+
+ Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet, Optional ByRef DBConnect As String = "")
+ If DBConnect = "" Then DBConnect = Class1.DBConString
Dim con As New SqlConnection
Dim cmd As New SqlCommand
- con.ConnectionString = cRes.DBConString
+ con.ConnectionString = DBConnect 'Class1.DBConString
cmd.Connection = con
-
- Dim dataadapter As New SqlDataAdapter(selector, con)
- con.Open()
- dataadapter.Fill(ds)
- con.Close()
+ Try
+ Dim dataadapter As New SqlDataAdapter(selector, con)
+ con.Open()
+ dataadapter.Fill(ds)
+ con.Close()
+ Catch ex As Exception
+ 'MsgBox("hier")
+ End Try
End Sub
- Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String)
+ Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String, Optional ByRef DBConnect As String = "")
+ If DBConnect = "" Then DBConnect = Class1.DBConString
Dim con As New SqlConnection
Dim cmd As New SqlCommand
- con.ConnectionString = cRes.DBConString
+ con.ConnectionString = DBConnect ' Class1.DBConString
cmd.Connection = con
con.Open()
@@ -25,10 +31,11 @@ Public Class cSQL
con.Close()
End Sub
- Public Shared Sub InsertSQL(ByRef table As String, ByRef insert As String)
+ Public Shared Sub InsertSQL(ByRef table As String, ByRef insert As String, Optional ByRef DBConnect As String = "")
+ If DBConnect = "" Then DBConnect = Class1.DBConString
Dim con As New SqlConnection
Dim cmd As New SqlCommand
- con.ConnectionString = cRes.DBConString
+ con.ConnectionString = DBConnect ' Class1.DBConString
cmd.Connection = con
con.Open()
@@ -37,10 +44,11 @@ Public Class cSQL
con.Close()
End Sub
- Public Shared Sub DeleteSQL(ByRef table As String, ByRef where As String)
+ Public Shared Sub DeleteSQL(ByRef table As String, ByRef where As String, Optional ByRef DBConnect As String = "")
+ If DBConnect = "" Then DBConnect = Class1.DBConString
Dim con As New SqlConnection
Dim cmd As New SqlCommand
- con.ConnectionString = cRes.DBConString
+ con.ConnectionString = DBConnect ' Class1.DBConString
cmd.Connection = con
con.Open()
@@ -49,6 +57,19 @@ Public Class cSQL
con.Close()
End Sub
+ Public Shared Sub SQLCommand(command As String, Optional ByRef DBConnect As String = "")
+ If DBConnect = "" Then DBConnect = Class1.DBConString
+ Dim con As New SqlConnection
+ Dim cmd As New SqlCommand
+ con.ConnectionString = DBConnect ' Class1.DBConString
+ cmd.Connection = con
+
+ con.Open()
+ cmd.CommandText = command
+ cmd.ExecuteNonQuery()
+ con.Close()
+ End Sub
+
End Class
@@ -70,7 +91,9 @@ Public Class SQLVariable
Public ReadOnly Property SQLValue() As Object
Get
- Return Value
+ Return value
End Get
End Property
+
End Class
+
diff --git a/frmLogOff.Designer.vb b/frmLogOff.Designer.vb
new file mode 100644
index 0000000..0e76feb
--- /dev/null
+++ b/frmLogOff.Designer.vb
@@ -0,0 +1,87 @@
+ _
+Partial Class frmLogOff
+ Inherits System.Windows.Forms.Form
+
+ 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+ _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Wird vom Windows Form-Designer benötigt.
+ Private components As System.ComponentModel.IContainer
+
+ 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+ 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
+ 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+ _
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.BtnAbbrechen = New System.Windows.Forms.Button()
+ Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
+ Me.Label2 = New System.Windows.Forms.Label()
+ Me.SuspendLayout()
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 20.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label1.Location = New System.Drawing.Point(12, 9)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(703, 62)
+ Me.Label1.TabIndex = 0
+ Me.Label1.Text = "Automatische Abmeldung wird in Kürze durchgeführt." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Nicht gespeicherte Dokumente " &
+ "werden verworfen."
+ '
+ 'BtnAbbrechen
+ '
+ Me.BtnAbbrechen.Font = New System.Drawing.Font("Microsoft Sans Serif", 22.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.BtnAbbrechen.ForeColor = System.Drawing.Color.Red
+ Me.BtnAbbrechen.Location = New System.Drawing.Point(188, 200)
+ Me.BtnAbbrechen.Name = "BtnAbbrechen"
+ Me.BtnAbbrechen.Size = New System.Drawing.Size(368, 53)
+ Me.BtnAbbrechen.TabIndex = 1
+ Me.BtnAbbrechen.Text = "Abbrechen"
+ Me.BtnAbbrechen.UseVisualStyleBackColor = True
+ '
+ 'Timer1
+ '
+ Me.Timer1.Interval = 1000
+ '
+ 'Label2
+ '
+ Me.Label2.AutoSize = True
+ Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 20.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label2.Location = New System.Drawing.Point(322, 112)
+ Me.Label2.Name = "Label2"
+ Me.Label2.Size = New System.Drawing.Size(95, 31)
+ Me.Label2.TabIndex = 2
+ Me.Label2.Text = "Label2"
+ '
+ 'frmLogOff
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(720, 292)
+ Me.Controls.Add(Me.Label2)
+ Me.Controls.Add(Me.BtnAbbrechen)
+ Me.Controls.Add(Me.Label1)
+ Me.Name = "frmLogOff"
+ Me.Text = "Abmeldung"
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+ Friend WithEvents Label1 As Label
+ Friend WithEvents BtnAbbrechen As Button
+ Friend WithEvents Timer1 As Timer
+ Friend WithEvents Label2 As Label
+End Class
diff --git a/frmLogOff.resx b/frmLogOff.resx
new file mode 100644
index 0000000..d0d99f4
--- /dev/null
+++ b/frmLogOff.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/frmLogOff.vb b/frmLogOff.vb
new file mode 100644
index 0000000..3789c0a
--- /dev/null
+++ b/frmLogOff.vb
@@ -0,0 +1,28 @@
+Public Class frmLogOff
+
+ Dim FinalCountdown As Integer = 30
+ Private Sub frmLogOff_Load(sender As Object, e As EventArgs) Handles Me.Load
+ Label2.Text = FinalCountdown.ToString
+ Timer1.Start()
+ End Sub
+
+ Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
+ If FinalCountdown > 0 Then
+ FinalCountdown = FinalCountdown - 1
+ Label2.Text = FinalCountdown.ToString
+ Else
+ Timer1.Stop()
+ Process.Start("shutdown", "-l")
+ Me.Close()
+ End If
+
+ End Sub
+
+ Private Sub BtnAbbrechen_Click(sender As Object, e As EventArgs) Handles BtnAbbrechen.Click
+ Timer1.Stop()
+ cRes.DisableAutoLogoff = True
+ Me.Close()
+ End Sub
+
+
+End Class
\ No newline at end of file