Imports System.Drawing Imports System.Drawing.Imaging Imports System.Net.Mail Imports System.Windows.Forms Public Class cErrorHandler Public Shared Sub ERR(message As String, stack As String, functionName As String, Optional OP As String = "", Optional title As String = "", Optional mailadess As String = "error@verag.ag", Optional recieverMailAdress As String = "", Optional zusatz As String = "", Optional errCode As String = Nothing, Optional furtherMailAdress As String = "") If OP = "" Then OP = VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL ' GLobal gesetzes Errorhandling! (Standart=SHOW) 'If Form.ActiveForm IsNot Nothing Then ' Dim bm As New Bitmap(Form.ActiveForm.Width, Form.ActiveForm.Height) ' Dim g As Graphics = Graphics.FromImage(bm) ' g.CopyFromScreen(Form.ActiveForm.Location, New Point(0, 0), New Size(Form.ActiveForm.Width, Form.ActiveForm.Height)) ' bm.Save("C:\formgrab.bmp", Drawing.Imaging.ImageFormat.Bmp) 'End If Try Select Case OP Case ERROR_OP.MAIL sendERRORperMail(title & " | " & My.Application.Info.AssemblyName, message, stack, mailadess, zusatz, functionName, furtherMailAdress) Case ERROR_OP.SHOW Dim c As New cProgramFunctions Dim url = c.MakeScreenshot() Dim f As New frmErrorMeldung(If(functionName <> "", "Fehler in der Funktion '" & functionName & "'" & vbNewLine & vbNewLine, "") & message & vbNewLine & zusatz, stack, title, url) f.ShowDialog() Case ERROR_OP.SHOW_MSGBOX MsgBox(If(functionName <> "", "Fehler in der Funktion '" & functionName & "'" & vbNewLine & vbNewLine, "") & message & vbNewLine & stack & vbNewLine & zusatz, MsgBoxStyle.OkOnly, If(title <> "", title, "Fehler")) End Select VERAG_PROG_ALLGEMEIN.cERS.saveErr(OP, message, stack, errCode, functionName, recieverMailAdress, zusatz) Catch ex As Exception Try VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Catch ex2 As Exception End Try End Try End Sub Public Shared Sub sendERRORperMail(title, errmsg, errstack, recieverMailAdress, zusatz, functionName, furtherMailAdress) Dim Msg As New MailMessage Dim myCredentials As New System.Net.NetworkCredential 'myCredentials.UserName = "support@verag.ag" 'myCredentials.Password = "$up0Rt2809!" 'myCredentials.UserName = "al@verag.ag" 'myCredentials.Password = "verag#2" myCredentials.UserName = "edv@verag.ag" myCredentials.Password = "Ju18WA10" Msg.IsBodyHtml = False Dim mySmtpsvr As New SmtpClient() mySmtpsvr.Host = "owa.verag.ag" 'bei web.de mySmtpsvr.Port = 25 '587 '25 mySmtpsvr.UseDefaultCredentials = False mySmtpsvr.Credentials = myCredentials Try ' Msg.From = New MailAddress("al@verag.ag") Msg.From = New MailAddress("edv@verag.ag") Msg.To.Add(recieverMailAdress) If furtherMailAdress <> "" Then Msg.To.Add(furtherMailAdress) Msg.Subject = title '"ERROR - DAKOSY Einarbeitung" Msg.Body = "Uhrzeit: " & Now.ToShortDateString & " " & Now.ToShortTimeString Msg.Body = "Function: " & functionName Msg.Body &= vbNewLine Msg.Body &= vbNewLine Msg.Body &= "Fehlermeldung: " & errmsg Msg.Body &= vbNewLine Msg.Body &= vbNewLine Msg.Body &= "Stacktrace: " & errstack Msg.Body &= vbNewLine If zusatz <> "" Then Msg.Body &= "Zusatz: " & zusatz Msg.Body &= vbNewLine End If Msg.Body &= errstack mySmtpsvr.Send(Msg) Catch ex As Exception Try mySmtpsvr.Host = "192.168.0.107" 'bei web.de ' 235 mySmtpsvr.Send(Msg) Catch ex2 As Exception ' MsgBox(ex.Message & ex.StackTrace) End Try End Try End Sub End Class Public Class ERROR_OP Shared Property SHOW As String = "SHOW" Shared Property SHOW_MSGBOX As String = "SHOW_MSGBOX" Shared Property MAIL As String = "MAIL" Shared Property TOFILE As String = "TOFILE" Shared Property LOG As String = "LOG" 'Nur fürs Protokoll, keine Fehlermeldung End Class