Imports System.Threading Imports DD_LIB_Standards Public Class frmMain Private PID As Integer Private WithEvents _Watcher As ClipboardWatcher = ClipboardWatcher.Singleton Private Sub frmClipboardWatch_Disposed(ByVal sender As Object, _ ByVal e As EventArgs) Handles Me.Disposed _Watcher.Dispose() End Sub Private Sub _Watcher_Changed(ByVal sender As Object, _ ByVal e As EventArgs) Handles _Watcher.Changed If MONITORING_ACTIVE = False Then Exit Sub Dim Data As IDataObject = Clipboard.GetDataObject ' Dim RelevantWindow = clsWINDOWSApi.IsRelevantWindow("jonathan") 'With Me.TextBox1 ' .AppendText(String.Concat("Available Formats:", vbNewLine)) ' .AppendText(String.Join(vbNewLine, Data.GetFormats)) ' .AppendText(String.Concat(vbNewLine, vbNewLine, "Text = '", _ ' Clipboard.GetText, "'", vbNewLine, vbNewLine)) 'End With Dim found As Boolean = False CLIPBOARD_TEXT = Clipboard.GetText For Each row As DataRow In DT_USER_PROFILES.Rows If PROC_Name.ToUpper = row.Item("PROC_NAME").ToString.ToUpper Then Dim regex_expression = row.Item("REGEX_EXPRESSION") Dim regex As New System.Text.RegularExpressions.Regex(regex_expression) Dim match As System.Text.RegularExpressions.Match = regex.Match(CLIPBOARD_TEXT) If match.Success Then If match.Groups(0).Value <> CURR_MATCH_RESULT Then CURR_MATCH_RESULT = match.Groups(0).Value If Not IsNothing(CURR_MATCH_RESULT) Then clsSearch.RUN_WD_SEARCH(row.Item("WD_SEARCH")) found = True End If Else Exit For End If Else If found = False Then End If End If End If Next End Sub Public Sub New() Dim splash As New frmSplash() splash.ShowDialog() If ERROR_INIT <> "INVALID USER" Then Dim cultureInfo As System.Globalization.CultureInfo cultureInfo = New System.Globalization.CultureInfo(USER_LANGUAGE) 'cultureInfo.DateTimeFormat.ShortDatePattern = USER_DATE_FORMAT Thread.CurrentThread.CurrentCulture = cultureInfo Thread.CurrentThread.CurrentUICulture = cultureInfo Globalization.CultureInfo.DefaultThreadCurrentCulture = cultureInfo Globalization.CultureInfo.DefaultThreadCurrentUICulture = cultureInfo End If ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Private Sub btnUserConfig_Click(sender As Object, e As EventArgs) Handles btnUserConfig.Click frmConfig_Basic.ShowDialog() End Sub Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing ClassLogger.Add(">> Logout time: " & Now.ToString, False) If ERROR_INIT = "INVALID USER" Then Exit Sub End If Try Dim sql = String.Format("UPDATE TBDD_USER SET LOGGED_IN = 0, LOGGED_WHERE = '{0}' WHERE (LOWER(USERNAME) = LOWER('{1}'))", "", USER_USERNAME) clsDatabase.Execute_non_Query(sql, True) sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE = 'Clipboard-Searcher'" clsDatabase.Execute_non_Query(sql, True) ClassWindowLocation.SaveFormLocationSize(Me, "") My.Settings.Save() Catch ex As Exception End Try 'TempDateien löschen Try For Each _file In TEMP_FILES System.IO.File.Delete(_file) Next Catch ex As Exception End Try If clsLogger.LOGG_MSG <> String.Empty Then ClassLogger.Add(clsLogger.LOGG_MSG, False) End If End Sub Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load ClassWindowLocation.LoadFormLocationSize(Me) If clsDatabase.DB_DEFAULT_INITIALIZED = True Then Me.NotifyIcon1.Visible = True Dim sql = String.Format("SELECT T.*, T2.PROC_NAME FROM TBCBS_PROFILES T, TBCBS_USER_PROFILE T1, TBCBS_PROFILE_PROCESS T2 WHERE T.GUID = T1.PROFILE_ID AND T.GUID = T2.PROFILE_ID AND T1.USER_ID = {0}", USER_GUID) DT_USER_PROFILES = clsDatabase.Return_Datatable(sql) If DT_USER_PROFILES.Rows.Count = 0 Then MsgBox("Es wurden noch keine Profile für diesen User hinterlegt!", MsgBoxStyle.Exclamation) End If End If tslblUser.Text = USER_USERNAME End Sub Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown If ERROR_INIT <> "INVALID USER" And LICENSE_COUNT > 0 Then If DT_USER_PROFILES.Rows.Count >= 1 Then Me.Hide() End If Else If USER_IS_ADMIN = True And ERROR_INIT = "NO LICENSE" Then MsgBox("As an admin You have exit! Please inform Digital Data to add a valid license!", MsgBoxStyle.Exclamation, "") Else MsgBox("Application will close now!", MsgBoxStyle.Critical, "") Me.Close() End If End If If USER_IS_ADMIN = True Then btnAdminConfig.Visible = True End If End Sub Private Sub NotifyIcon1_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon1.DoubleClick If Me.Visible = False Then Me.BringToFront() Me.Visible = True TimerClose.Start() Else Me.Hide() NotifyIcon1.Visible = True End If End Sub Private Sub frmMain_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp If e.KeyCode = Keys.F12 And USER_IS_ADMIN = True Then frmLicense.ShowDialog() End If End Sub Private Sub tsmiChangeState_Click(sender As Object, e As EventArgs) Handles tsmiChangeState.Click If tsmiChangeState.Tag = "stop" Then tsmiChangeState.Tag = "start" tsmiChangeState.Image = My.Resources.control_start_blue tsmiChangeState.Text = "Überwachung Clipboard starten" MONITORING_ACTIVE = False Else tsmiChangeState.Image = My.Resources.StatusAnnotations_Stop_16xLG tsmiChangeState.Tag = "stop" tsmiChangeState.Text = "Überwachung Clipboard stoppen" MONITORING_ACTIVE = True End If End Sub 'Private Sub Timer1_Tick(sender As Object, e As EventArgs) ' clsWINDOWSApi.Get_ForegroundWindow_Info() ' If PID <> PROC_PID Then ' PID = PROC_PID ' With Me.TextBox1 ' .AppendText(String.Concat("Process-ID:" & PROC_PID, vbNewLine)) ' .AppendText(String.Concat("Process-Name:" & PROC_Name, vbNewLine)) ' .AppendText("Window-Title: " & PROC_WindowTitle) ' .AppendText(String.Concat("", vbNewLine)) ' End With ' End If 'End Sub Private Sub btnAdminConfig_Click(sender As Object, e As EventArgs) Handles btnAdminConfig.Click TimerClose.Stop() MONITORING_ACTIVE = False frmAdministration.ShowDialog() TimerClose.Start() MONITORING_ACTIVE = True End Sub Private Sub TimerClose_Tick(sender As Object, e As EventArgs) Handles TimerClose.Tick Me.Hide() End Sub Private Sub frmMain_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged If TimerClose.Enabled = True Then TimerClose.Stop() End If End Sub End Class