[.NET] VB.NET - Allgemeiner Fehler in GDI+

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Upperon, 19. April 2012 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 19. April 2012
    VB.NET - Allgemeiner Fehler in GDI+

    Hi Leute,

    ich schreibe derzeit an einem kleinen Programm das später per Taskplaner alle 30 Minuten aufgerufen werden soll und sich dann auch selbst beenden soll.
    Das Programm soll nichts anderes tun, als einen Screenshot vom aktuell markierten Fenster machen, diesen als Datei abspeichern und anschliessend per Email versenden.

    Wenn ich das Programm in der VB.NET Umgebung laufen lasse, macht er den Screenshot, speichert diesen auch ab, mailt ihn aber nicht. Wahrscheinlich liegt das daran, dass ich ggf meinen Mailserver in xampp noch nicht richtig eingestellt habe.
    Wenn ich das Programm allerdings compiliere, installiere und dann versuche auszuführen bekomme ich immer die Fehlermeldung "Allgemeiner Fehler in GDI+" ohne, dass er einen Screenshot erstellt.

    Hier mal der Quellcode meines Programms:
    Code:
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Imports NDde.Client
    Imports System
    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Text
    Imports System.Net.Mail
    Imports System.Net
    
    
    
    
    
    Public Class Form1
    
     Inherits System.Windows.Forms.Form
    
     <DllImport("user32.dll")> _
     Private Shared Function GetForegroundWindow() As IntPtr
     End Function
    
     <DllImport("user32.dll")> _
     Public Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
     End Function
    
     <StructLayout(LayoutKind.Sequential)> _
     Public Structure RECT
     Public Left As Integer
     Public Top As Integer
     Public Right As Integer
     Public Bottom As Integer
     End Structure
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Dim dialogResult As DialogResult = Windows.Forms.DialogResult.Ignore
     Dim saveName As String = String.Empty
     Me.Visible = False
    
     saveName = "d:\test.jpg"
    
     System.Threading.Thread.Sleep(5000)
    
     Dim rct As RECT
     GetWindowRect(GetForegroundWindow(), rct)
    
     Using bmpScreenshot As Bitmap = New Bitmap(rct.Right - rct.Left, rct.Bottom - rct.Top, PixelFormat.Format24bppRgb)
     Using gfxScreenshot As Graphics = Graphics.FromImage(bmpScreenshot)
     gfxScreenshot.CopyFromScreen(rct.Left, rct.Top, 0, 0, New Size(rct.Right - rct.Left, rct.Bottom - rct.Top), CopyPixelOperation.SourceCopy)
     gfxScreenshot.Flush()
     End Using
     PictureBox1.Image = New Bitmap(bmpScreenshot)
     bmpScreenshot.Save(saveName, ImageFormat.Jpeg)
     End Using
    
    
     Dim from As New MailAddress("postmaster@localhost")
     Dim an As New MailAddress("p.ehrhard@yahoo.de")
     Dim subject As String = "Test"
     Dim body As String = "Test"
     Dim message As New MailMessage(from, an)
     message.Subject = subject
     message.Body = body
     Dim file As String = saveName
     ' Create the file attachment for this e-mail message.
     Dim data As New Attachment(file)
    
     ' Add the file attachment to this e-mail message.
     message.Attachments.Add(data)
     Dim client As New SmtpClient("127.0.0.1", 25)
     MessageBox.Show("SMTP festgelegt")
     client.Send(message)
    
    
     MessageBox.Show("Email sent")
     Console.Beep()
    
     End
    
     End Sub
    
    End Class
    Und hier mal die komplette Fehlermeldung:
    Code:
    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
    
    ************** Ausnahmetext **************
    System.Runtime.InteropServices.ExternalException (0x80004005): Allgemeiner Fehler in GDI+.
     bei System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
     bei System.Drawing.Image.Save(String filename, ImageFormat format)
     bei WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e)
     bei System.EventHandler.Invoke(Object sender, EventArgs e)
     bei System.Windows.Forms.Form.OnLoad(EventArgs e)
     bei System.Windows.Forms.Form.OnCreateControl()
     bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
     bei System.Windows.Forms.Control.CreateControl()
     bei System.Windows.Forms.Control.WmShowWindow(Message& m)
     bei System.Windows.Forms.Control.WndProc(Message& m)
     bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
     bei System.Windows.Forms.Form.WmShowWindow(Message& m)
     bei System.Windows.Forms.Form.WndProc(Message& m)
     bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
     bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
     bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    
    
    ************** Geladene Assemblys **************
    mscorlib
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.235 (RTMGDR.030319-2300).
     CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    Screencapture
     Assembly-Version: 1.0.0.0.
     Win32-Version: 1.0.0.0.
     CodeBase: file:///C:/Users/Thor/AppData/Local/Apps/2.0/RG6AGR65.O2Z/HZ6TC9EY.XK1/scre..tion_c6da958477e36365_0001.0000_f08e0249d5324fc9/Screencapture.exe.
    ----------------------------------------
    Microsoft.VisualBasic
     Assembly-Version: 10.0.0.0.
     Win32-Version: 10.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.232 built by: RTMGDR.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Core
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    ----------------------------------------
    System.Windows.Forms
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.235 built by: RTMGDR.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Configuration
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Xml
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    System.Runtime.Remoting
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    System.Drawing.resources
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing.resources/v4.0_4.0.0.0_de_b03f5f7f11d50a3a/System.Drawing.resources.dll.
    ----------------------------------------
    System.Windows.Forms.resources
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.1 built by: RTMRel.
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------
    mscorlib.resources
     Assembly-Version: 4.0.0.0.
     Win32-Version: 4.0.30319.235 (RTMGDR.030319-2300).
     CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    ----------------------------------------
    
    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
    
    Zum Beispiel:
    
    <configuration>
     <system.windows.forms jitDebugging="true" />
    </configuration>
    
    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
    

    Was läuft da schief?
     
  2. 19. April 2012
    AW: VB.NET - Allgemeiner Fehler in GDI+

    hat sich erledigt. Der Fehler liegt am Mailversand. Habs nun anders hingekommen.
    Ich mach den Thread daher dicht
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.