530 lines
28 KiB
VB.net
530 lines
28 KiB
VB.net
Imports System.IO
|
|
Imports Microsoft.Office.Interop
|
|
Imports Independentsoft
|
|
Imports DLLLicenseManager
|
|
Imports System.Text
|
|
Public Class frmStart
|
|
Dim sql_User_Login As String = "UPDATE TBDD_USER SET LOGGED_IN = @LogInOut, LOGGED_WHERE = '@ANGEMELDETWO' WHERE (LOWER(USERNAME) = LOWER('@user'))"
|
|
Dim sql_UserID As String = "SELECT GUID FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))"
|
|
Private USER_GUID
|
|
Private ISUserAdmin As Boolean = False
|
|
Public _lizenzManager As ClassLicenseManager
|
|
Dim loaded As Boolean = False
|
|
Dim WithEvents HotKey As New clsHotkey(Me)
|
|
|
|
Private Sub frmMain_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop
|
|
ClassDragDrop.Drop_File(e)
|
|
Check_Dropped_Files()
|
|
End Sub
|
|
Private Sub ReceiveHotKey(ByVal HotKeyID As String) Handles HotKey.HotKeyPressed
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Me.NotifyIcon1.Visible = True
|
|
NotifyIcon1.ShowBalloonTip(2000, "Hotkey", "Hotkey wird ausgeführt!", ToolTipIcon.Info)
|
|
Try
|
|
'Die vorherige Tempfile löschen
|
|
If CURRENT_WD_TEMPSEARCH <> "" Then
|
|
If My.Computer.FileSystem.FileExists(CURRENT_WD_TEMPSEARCH) Then
|
|
Try
|
|
My.Computer.FileSystem.DeleteFile(CURRENT_WD_TEMPSEARCH)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End If
|
|
End If
|
|
Dim HK1 As String
|
|
Dim HK2 As String
|
|
'Die Hotkeys definieren
|
|
Dim SQL As String = "SELECT * FROM TBHOTKEYTEMP_USER_HOTKEYS WHERE HOTKEY_ID = " & HotKeyID
|
|
Dim DTHOTKEYSTEMP As DataTable = ClassDatabase.Return_Datatable(SQL, True)
|
|
If Not IsNothing(DTHOTKEYSTEMP) Then
|
|
HK1 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY1")
|
|
HK2 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY2")
|
|
'Alle Profile raussuchen die die Tastaturkombination enthalten
|
|
SQL = "select * from TBHOTKEY_USER_PROFILE where UPPER(HOTKEY1) = UPPER('" & HK1 & "') AND UPPER(HOTKEY2) = UPPER('" & HK2 & "') AND USER_ID = " & CURRENT_USERID
|
|
Dim DTHOTKEY_PROFILES As DataTable = ClassDatabase.Return_Datatable(SQL, True)
|
|
Dim Result As String = ""
|
|
If Not IsNothing(DTHOTKEY_PROFILES) Then
|
|
For Each row As DataRow In DTHOTKEY_PROFILES.Rows
|
|
Result = ClassHotkey_Windream.RUN_WD_SEARCH(row.Item("GUID"))
|
|
Next
|
|
End If
|
|
|
|
If Result = "" Then
|
|
Me.NotifyIcon1.Visible = False
|
|
Else
|
|
NotifyIcon1.ShowBalloonTip(5000, "Hotkey-Fehler:", Result.ToString, ToolTipIcon.Warning)
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in ReceiveHotKey: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
Private Sub frmMain_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter
|
|
Drag_Enter(sender, e)
|
|
End Sub
|
|
Sub Drag_Enter(sender As Object, e As DragEventArgs)
|
|
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
|
|
e.Effect = DragDropEffects.All
|
|
Console.WriteLine("DragEnter ...DragDrop")
|
|
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
|
|
'handle a message dragged from Outlook
|
|
e.Effect = DragDropEffects.Copy
|
|
Console.WriteLine("DragEnter ...OutlookMessage")
|
|
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
|
|
e.Effect = DragDropEffects.Copy
|
|
Console.WriteLine("DragEnter ...Attachment from Outlook")
|
|
Else
|
|
'otherwise, do not handle
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
End Sub
|
|
Sub Check_Dropped_Files()
|
|
Try
|
|
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
Dim i As Integer
|
|
For Each Str As Object In ClassDragDrop.files_dropped
|
|
If Not Str Is Nothing Then
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Check Drop-File:" & Str.ToString, False)
|
|
Dim handleType As String = Str.Substring(0, Str.LastIndexOf("@") + 1)
|
|
Dim filename As String = Str.Substring(Str.LastIndexOf("@") + 1)
|
|
If ClassIndexFunctions.FileExistsinDropTable(filename) = False Then
|
|
Dim ins As String = "INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK,HANDLE_TYPE) VALUES ('" & filename & "','" & Environment.UserName & "','" & handleType & "')"
|
|
If ClassDatabase.Execute_non_Query(ins, True) = False Then
|
|
MsgBox("Unexpected Error in Create Record for dropped-file - Check logfile", MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
i += 1
|
|
Else
|
|
Console.WriteLine("File gibt es bereits")
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
Dim sql As String = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
|
|
Dim DTFiles As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
|
For Each Filerow As DataRow In DTFiles.Rows
|
|
'Dim datei = Str.ToString.Replace("@DROPFROMFSYSTEM@", "")
|
|
CURRENT_WORKFILE_GUID = Filerow.Item(0)
|
|
CURRENT_WORKFILE = Filerow.Item("FILENAME2WORK")
|
|
Open_IndexDialog()
|
|
Next
|
|
|
|
'Prüfen ob alle Files abgearbeitet wurden
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND HANDLE_TYPE not like '%@FW%' AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
If DT.Rows.Count > 0 Then
|
|
For Each row As DataRow In DT.Rows
|
|
Dim filestring As String = row.Item(1)
|
|
filestring = filestring.Substring(filestring.LastIndexOf("@") + 1)
|
|
Select Case CURRENT_ABBRUCH
|
|
Case 0
|
|
CURRENT_ABBRUCH = 1
|
|
Case 1
|
|
CURRENT_ABBRUCH = 2
|
|
Case 2
|
|
CURRENT_ABBRUCH = 0
|
|
End Select
|
|
If File.Exists(filestring) Then
|
|
If CURRENT_ABBRUCH = 2 Then
|
|
Dim result As MsgBoxResult
|
|
result = MessageBox.Show("Sie brechen nun zum zweiten Mal den Indexierungsvorgang ab!" & vbNewLine & "Wollen Sie abbrechen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
If result = MsgBoxResult.Yes Then
|
|
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE GUID = " & row.Item(0))
|
|
Exit Sub
|
|
End If
|
|
Else
|
|
MsgBox("Es sind noch Dateien zum Indexieren vorhanden:" & vbNewLine & "Bitte indexieren Sie die folgende Datei vollständig:", MsgBoxStyle.Exclamation)
|
|
CURRENT_WORKFILE = row.Item(1)
|
|
CURRENT_FILENAME = row.Item(1)
|
|
CURRENT_WORKFILE_GUID = row.Item(0)
|
|
Open_IndexDialog()
|
|
End If
|
|
Else
|
|
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE GUID = " & row.Item(0))
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Check_Dropped_Files: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Sub Open_IndexDialog()
|
|
Try
|
|
Me.Hide()
|
|
frmIndex.ShowDialog()
|
|
Me.Visible = True
|
|
Me.TopMost = True
|
|
Me.BringToFront()
|
|
If Not CURRENT_FILENAME.EndsWith("msg") Then
|
|
Dim workedsql = "select WORKED FROM TBGI_FILES_USER where guid = " & CURRENT_WORKFILE_GUID
|
|
If ClassDatabase.Execute_Scalar(workedsql, MyConnectionString, True) = 0 Then
|
|
Select Case CURRENT_ABBRUCH
|
|
Case 0
|
|
CURRENT_ABBRUCH = 1
|
|
Case 1
|
|
CURRENT_ABBRUCH = 2
|
|
Case 2
|
|
CURRENT_ABBRUCH = 0
|
|
End Select
|
|
If CURRENT_ABBRUCH = 2 Then
|
|
Dim result As MsgBoxResult
|
|
result = MessageBox.Show("Sie brechen nun zum zweiten Mal den Indexierungsvorgang ab!" & vbNewLine & "Wollen Sie abbrechen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
If result = MsgBoxResult.Yes Then
|
|
Exit Sub
|
|
End If
|
|
Else
|
|
MsgBox("Datei wurde nicht vollständig indexiert:" & vbNewLine & "Bitte wiederholen Sie den Vorgang:", MsgBoxStyle.Exclamation)
|
|
Open_IndexDialog()
|
|
End If
|
|
End If
|
|
Else
|
|
'Hier nun die Anhänge indexieren
|
|
Dim _msg As New Msg.Message(CURRENT_FILENAME)
|
|
Dim i1 As Integer = 1
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Anzahl der Attachments: " & _msg.Attachments.Count, False)
|
|
For Each attachment As Independentsoft.Msg.Attachment In _msg.Attachments
|
|
If attachment.DisplayName Is Nothing Then
|
|
If Not attachment.LongFileName Is Nothing Then
|
|
If Not attachment.LongFileName.Contains("inline") Then
|
|
Dim tempfile As String = Path.Combine(Path.GetTempPath, attachment.LongFileName)
|
|
If File.Exists(tempfile) Then
|
|
File.Delete(tempfile)
|
|
End If
|
|
attachment.Save(tempfile)
|
|
Dim sql As String = "INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK,HANDLE_TYPE) VALUES ('" & tempfile & "','" & Environment.UserName & "','@ATTMNTEXTRACTED@')"
|
|
If ClassDatabase.Execute_non_Query(sql, True) = True Then
|
|
sql = "SELECT MAX(GUID) FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
|
|
Dim GUID = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
|
|
If Not IsNothing(GUID) Then
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Attachment (" & i1 & "):" & tempfile, False)
|
|
CURRENT_FILENAME = tempfile
|
|
CURRENT_WORKFILE = tempfile
|
|
CURRENT_WORKFILE_GUID = GUID
|
|
Open_IndexDialog()
|
|
i1 += 1
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
Catch ex As Exception
|
|
Me.Visible = True
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub frmStart_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
|
Try
|
|
Dim sql = sql_User_Login
|
|
sql = sql.Replace("@LogInOut", 0)
|
|
sql = sql.Replace("@ANGEMELDETWO", "''")
|
|
sql = sql.Replace("@user", Environment.UserName)
|
|
ClassDatabase.Execute_non_Query(sql)
|
|
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE = 'Global-Indexer'"
|
|
ClassDatabase.Execute_non_Query(sql)
|
|
ClassWindowLocation.SaveFormLocationSize(Me)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
Unregister_Hotkeys()
|
|
|
|
End Sub
|
|
Sub Refresh_Licence()
|
|
Try
|
|
Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "")
|
|
Dim sql As String = "SELECT LICENSEKEY FROM TBGI_CONFIGURATION WHERE GUID = 1"
|
|
|
|
Dim lic As String = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
|
|
Dim licString = Me._lizenzManager.DecodeLicenseKey(lic)
|
|
Dim split() = licString.ToString.Split("#")
|
|
|
|
If lic <> "" Then
|
|
License_Anzahl = split(0)
|
|
Else
|
|
License_Anzahl = 0
|
|
End If
|
|
If CDate(split(1)) < CDate(Now.ToShortDateString) Then
|
|
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & split(1) & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
|
|
License_Expired = True
|
|
License_Anzahl = 0
|
|
End If
|
|
|
|
'tslblLicenses.Text = "Anzahl Lizenzen: " & licenseanzahl
|
|
LicenseProfiles = split(2)
|
|
Try
|
|
LicenseHotKey = split(3)
|
|
Catch ex As Exception
|
|
LicenseHotKey = 0
|
|
End Try
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler bei Licensemanager:")
|
|
End Try
|
|
End Sub
|
|
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
'Me.TransparencyKey = Color.Transparent
|
|
' Me.BackColor = Color.Transparent
|
|
Try
|
|
If Environment.UserName.ToLower = "schreiberm" Then
|
|
AApiToolStripMenuItem.Visible = True
|
|
Else
|
|
AApiToolStripMenuItem.Visible = False
|
|
End If
|
|
Me.Opacity = 30
|
|
ClassWindowLocation.LoadFormLocationSize(Me)
|
|
Dim sql = sql_UserID
|
|
sql = sql.Replace("@user", Environment.UserName)
|
|
ClassLogger.Init("", "log_" & Environment.UserName)
|
|
ClassLogger.Add(">> Username: " & Environment.UserName, False)
|
|
LoadMyConfig()
|
|
|
|
If MyConnectionString = String.Empty Then
|
|
frmConfig_Basic.ShowDialog()
|
|
End If
|
|
If ClassDatabase.Init() = False Then
|
|
MsgBox("Es konnte keine Datenbankverbindung aufgebaut werden!" & vbNewLine & "Bitte prüfen Sie die Einstellungen und den Datenbankserver", MsgBoxStyle.Critical)
|
|
Me.Close()
|
|
End If
|
|
If UniversalViewer = String.Empty Then
|
|
frmConfig_Basic.ShowDialog()
|
|
End If
|
|
If MyConnectionString = String.Empty Then
|
|
Me.Close()
|
|
End If
|
|
Refresh_Licence()
|
|
USER_GUID = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
|
|
If USER_GUID Is Nothing Then
|
|
ClassLogger.Add(" - User: " & Environment.UserName & " nicht in der Userverwaltung hinterlegt!", False)
|
|
MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
|
|
Me.Close()
|
|
Else
|
|
CURRENT_USERID = USER_GUID
|
|
Dim folderwatch = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE USER_ID = " & CURRENT_USERID, MyConnectionString)
|
|
If Not folderwatch Is Nothing Then
|
|
CURRENT_FOLDERWATCH = folderwatch
|
|
If FW_started = True Then
|
|
tslblFW.Visible = True
|
|
ClassFolderWatcher.StartStop_FolderWatch()
|
|
End If
|
|
If CURRENT_FOLDERWATCH <> "" Then
|
|
TimerFolderWatch.Start()
|
|
End If
|
|
End If
|
|
sql = "SELECT MODULE_GI FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))"
|
|
sql = sql.Replace("@user", Environment.UserName)
|
|
If ClassDatabase.Execute_Scalar(sql, MyConnectionString, True) = False Then
|
|
ClassLogger.Add(" - User: " & Environment.UserName & " nicht für Modul freigegben!", False)
|
|
MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
|
|
Me.Close()
|
|
Else
|
|
'Am System anmelden
|
|
sql = sql_User_Login
|
|
sql = sql.Replace("@LogInOut", 1)
|
|
sql = sql.Replace("@ANGEMELDETWO", Environment.MachineName)
|
|
sql = sql.Replace("@user", Environment.UserName)
|
|
If ClassDatabase.Execute_non_Query(sql, True) = False Then
|
|
Me.Close()
|
|
End If
|
|
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'"
|
|
ClassDatabase.Execute_non_Query(sql, True)
|
|
sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & USER_GUID & ",'Global-Indexer')"
|
|
ClassDatabase.Execute_non_Query(sql, True)
|
|
|
|
sql = "SELECT GI_ADMIN FROM TBDD_USER WHERE GUID = " & USER_GUID
|
|
ISUserAdmin = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
|
|
|
|
If ISUserAdmin = True Then
|
|
ToolStripSeparator1.Visible = True
|
|
AdministrationToolStripMenuItem.Visible = True
|
|
Else
|
|
ToolStripSeparator1.Visible = False
|
|
AdministrationToolStripMenuItem.Visible = False
|
|
End If
|
|
'Lizenz abgellaufen, überprüfen ob User Admin ist
|
|
If License_Expired And ISUserAdmin = False Then
|
|
' wenn ja dann schliessen
|
|
Me.Close()
|
|
Else
|
|
'ansonsten timer starten
|
|
TimerClose3Minutes.Start()
|
|
End If
|
|
'Anzahl der eingeloggten User
|
|
UserLoggedin = ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Global-Indexer'", MyConnectionString)
|
|
If License_Anzahl < UserLoggedin Then
|
|
MsgBox("Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & License_Anzahl.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
|
|
ClassLogger.Add(" - Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der Lizenzen für Process-Manager!", False)
|
|
If ISUserAdmin = False Then
|
|
Me.Close()
|
|
Else
|
|
'ansonsten timer starten
|
|
If TimerClose3Minutes.Enabled = False Then
|
|
TimerClose3Minutes.Start()
|
|
End If
|
|
End If
|
|
End If
|
|
sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Global-Indexer'"
|
|
Dim anzahl = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
|
|
ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True)
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" - Anzahl Angemeldete User: " & anzahl.ToString, False)
|
|
If Load_BasicConfig() = False Then
|
|
Me.Close()
|
|
End If
|
|
Unregister_Hotkeys()
|
|
Load_Hotkeys()
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Load-Form" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Sub Unregister_Hotkeys()
|
|
Try
|
|
Dim sql As String = "Select * from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
|
If Not IsNothing(DT) Then
|
|
For Each row As DataRow In DT.Rows
|
|
HotKey.RemoveHotKey(row.Item("HOTKEY_ID"))
|
|
Next
|
|
sql = "delete from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID
|
|
ClassDatabase.Execute_non_Query(sql, True)
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Error in Unregister_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Sub Load_Hotkeys()
|
|
Try
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT HOTKEY1, HOTKEY2, ABS(CONVERT(INT, CONVERT(binary(4), NEWID()))) AS HOTKEY_ID FROM TBHOTKEY_USER_PROFILE WHERE USER_ID = " & CURRENT_USERID & " GROUP BY HOTKEY1, HOTKEY2", True)
|
|
If DT.Rows.Count > 0 Then
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ... " & DT.Rows.Count & " Hotkeys", False)
|
|
Dim i As Integer = 0
|
|
For Each row As DataRow In DT.Rows
|
|
i += 1
|
|
Dim sql As String = "INSERT INTO TBHOTKEYTEMP_USER_HOTKEYS (HOTKEY_ID,HOTKEY1,HOTKEY2,[USER_ID]) VALUES (" & row.Item("HOTKEY_ID") & ", '" & row.Item("HOTKEY1") & "', '" & row.Item("HOTKEY2") & "', " & CURRENT_USERID & ")"
|
|
ClassDatabase.Execute_non_Query(sql, True)
|
|
|
|
Dim keyCode As Keys
|
|
Try
|
|
Dim kc As New KeysConverter
|
|
Dim obj As Object = kc.ConvertFromString(row.Item("HOTKEY2").ToString.ToUpper)
|
|
keyCode = CType(obj, Keys)
|
|
Catch ex As Exception
|
|
MsgBox("Error in Convert Key:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End Try
|
|
|
|
Select Case row.Item("HOTKEY1")
|
|
Case "Strg"
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ..." & i.ToString + "|Strg " & row.Item("HOTKEY2").ToString.ToUpper, False)
|
|
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_CONTROL, row.Item("HOTKEY_ID"))
|
|
Case "Shift"
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ..." & i.ToString + "|Shift " & row.Item("HOTKEY2").ToString.ToUpper, False)
|
|
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_SHIFT, row.Item("HOTKEY_ID"))
|
|
Case "Alt"
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ..." & i.ToString + "|Alt " & row.Item("HOTKEY2").ToString.ToUpper, False)
|
|
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_ALT, row.Item("HOTKEY_ID"))
|
|
Case "win"
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ..." & i.ToString + "|Win " & row.Item("HOTKEY2").ToString.ToUpper, False)
|
|
HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_WIN, row.Item("HOTKEY_ID"))
|
|
End Select
|
|
Next
|
|
Else
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" ... Keine Hotkeys!", False)
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Load_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
'Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
|
|
' If loaded = True Then
|
|
' If m.Msg = ClassHotkey.WM_HOTKEY Then
|
|
' ' ' 'Me.Cursor = Cursors.WaitCursor
|
|
' ' ' ' ClassHotkey_Windream.RUN_WD_SEARCH(m.WParam)
|
|
' ' ' 'Me.NotifyIcon1.Visible = True
|
|
' ' ' 'NotifyIcon1.ShowBalloonTip(2000, "Hotkey", "Hotkey wird ausgeführt!", ToolTipIcon.Info)
|
|
' ' ' 'Dim Result =
|
|
' ' ' 'MyBase.WndProc(m)
|
|
' ' ' 'If Result = "" Then
|
|
' ' ' ' ' Me.NotifyIcon1.Visible = False
|
|
' ' ' 'Else
|
|
' ' ' ' ' NotifyIcon1.ShowBalloonTip(5000, "Hotkey-Fehler:", Result.ToString, ToolTipIcon.Warning)
|
|
' ' ' 'End If
|
|
' ' ' End If
|
|
' Else
|
|
' Console.WriteLine("MESSAGE: " & m.ToString)
|
|
' End If
|
|
' End If
|
|
|
|
'End Sub 'System wide hotkey event handling
|
|
|
|
Private Sub HotkeyEisntellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HotkeyEisntellungenToolStripMenuItem.Click
|
|
Me.Hide()
|
|
Unregister_Hotkeys()
|
|
frmHotKey_Add.ShowDialog()
|
|
Load_Hotkeys()
|
|
Me.Visible = True
|
|
End Sub
|
|
|
|
Private Sub GlobalIndexerEinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GlobalIndexerEinstellungenToolStripMenuItem.Click
|
|
Me.Hide()
|
|
frmAdministration.ShowDialog()
|
|
Me.Visible = True
|
|
End Sub
|
|
|
|
Private Sub GrundeinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GrundeinstellungenToolStripMenuItem.Click
|
|
Me.TopMost = False
|
|
frmConfig_Basic.ShowDialog()
|
|
Me.TopMost = True
|
|
End Sub
|
|
|
|
Private Sub FrmHotkeyAddToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FrmHotkeyAddToolStripMenuItem.Click
|
|
Me.TopMost = False
|
|
Unregister_Hotkeys()
|
|
frmHotkey_User.ShowDialog()
|
|
Load_Hotkeys()
|
|
Me.TopMost = True
|
|
End Sub
|
|
|
|
Private Sub TimerFolderWatch_Tick(sender As Object, e As EventArgs) Handles TimerFolderWatch.Tick
|
|
Try
|
|
If FW_started = True Then
|
|
'Prüfen ob alle Files abgearbeitet wurden
|
|
Dim sql = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND HANDLE_TYPE like '%@FW%' AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
|
If DT.Rows.Count > 0 Then
|
|
' Dim fil As String
|
|
Me.TimerFolderWatch.Stop()
|
|
For Each row As DataRow In DT.Rows
|
|
CURRENT_WORKFILE = row.Item(1)
|
|
CURRENT_FILENAME = row.Item(1)
|
|
CURRENT_WORKFILE_GUID = row.Item("GUID")
|
|
Open_IndexDialog()
|
|
Next
|
|
Me.TimerFolderWatch.Start()
|
|
End If
|
|
tslblFW.Visible = True
|
|
Else
|
|
tslblFW.Visible = False
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Work FolderWatch-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub TimerClose3Minutes_Tick(sender As Object, e As EventArgs) Handles TimerClose3Minutes.Tick
|
|
If License_Expired = True Or License_Anzahl < UserLoggedin Then
|
|
MsgBox("Global Indexer wird nun geschlossen, weil keine neue Lizenzdaten eingegeben wurden!", MsgBoxStyle.Information)
|
|
Me.Close()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
|
loaded = True
|
|
Opacity = 0.65
|
|
TimerFolderWatch.Start()
|
|
End Sub
|
|
End Class |