Получение ошибки GDI+ при втором нажатии на кнопку
Я создал программу, которая делает снимок текущей формы. Когда кнопка нажимается, она делает снимок экрана, прикрепляется к электронной почте, а затем отправляет. Это сработало при первом щелчке, а затем при втором щелчке я получаю следующую ошибку. Я закончил с этой частью программы на некоторое время, когда вдруг она перестала работать, не знаю почему. Просто довел до моего сведения, что сегодня это прекратилось.
Ошибка:
<pre>See the end of this message for details on invoking <br /> just-in-time (JIT) debugging instead of this dialog box.<br /> <br /> ************** Exception Text **************<br /> System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.<br /> at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)<br /> at System.Drawing.Image.Save(String filename, ImageFormat format)<br /> at Townsend_Leather_Desktop_App.tm_idr_form.Button4_Click(Object sender, EventArgs e)<br /> at System.Windows.Forms.Control.OnClick(EventArgs e)<br /> at System.Windows.Forms.Button.OnClick(EventArgs e)<br /> at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)<br /> at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)<br /> at System.Windows.Forms.Control.WndProc(Message& m)<br /> at System.Windows.Forms.ButtonBase.WndProc(Message& m)<br /> at System.Windows.Forms.Button.WndProc(Message& m)<br /> at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)<br /> at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)<br /> at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)<br /> <br /> <br /> ************** Loaded Assemblies **************<br /> mscorlib<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3468.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll<br /> ----------------------------------------<br /> Townsend Leather Desktop App<br /> Assembly Version: 1.0.0.0<br /> Win32 Version: 1.0.0.0<br /> CodeBase: file:///C:/Users/codyo/AppData/Local/Apps/2.0/TJZ347LK.E64/6VQ2W5WQ.HVA/town..tion_cde9587b7f80b9c0_0001.0000_87a7cfb874c5e9d1/Townsend%20Leather%20Desktop%20App.exe<br /> ----------------------------------------<br /> Microsoft.VisualBasic<br /> Assembly Version: 10.0.0.0<br /> Win32 Version: 14.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll<br /> ----------------------------------------<br /> System<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3451.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll<br /> ----------------------------------------<br /> System.Core<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3468.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll<br /> ----------------------------------------<br /> System.Windows.Forms<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll<br /> ----------------------------------------<br /> System.Drawing<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll<br /> ----------------------------------------<br /> System.Configuration<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll<br /> ----------------------------------------<br /> System.Xml<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll<br /> ----------------------------------------<br /> System.Runtime.Remoting<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll<br /> ----------------------------------------<br /> System.Data<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll<br /> ----------------------------------------<br /> System.Transactions<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll<br /> ----------------------------------------<br /> System.EnterpriseServices<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll<br /> ----------------------------------------<br /> System.Runtime.Caching<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Caching/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.dll<br /> ----------------------------------------<br /> Accessibility<br /> Assembly Version: 4.0.0.0<br /> Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C<br /> CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll<br /> ----------------------------------------<br /> <br /> ************** JIT Debugging **************<br /> To enable just-in-time (JIT) debugging, the .config file for this<br /> application or computer (machine.config) must have the<br /> jitDebugging value set in the system.windows.forms section.<br /> The application must also be compiled with debugging<br /> enabled.<br /> <br /> For example:<br /> <br /> <configuration><br /> <system.windows.forms jitDebugging="true" /><br /> </configuration><br /> <br /> When JIT debugging is enabled, any unhandled exception<br /> will be sent to the JIT debugger registered on the computer<br /> rather than be handled by this dialog box.<br /> </pre>
У меня есть следующая функция:
Private Function GetFormImage(ByVal include_borders As Boolean) As Bitmap ' Make the bitmap. Dim wid As Integer = Me.Width Dim hgt As Integer = Me.Height Dim bm As New Bitmap(wid, hgt) ' Draw the form onto the bitmap. Me.DrawToBitmap(bm, New Rectangle(0, 0, wid, hgt)) ' Make a smaller bitmap without borders. wid = Me.ClientSize.Width hgt = Me.ClientSize.Height Dim bm2 As New Bitmap(wid, hgt) ' Get the offset from the window's corner to its client ' area's corner. Dim pt As New Point(0, 0) pt = PointToScreen(pt) Dim dx As Integer = pt.X - Me.Left Dim dy As Integer = pt.Y - Me.Top ' Copy the part of the original bitmap that we want ' into the bitmap. Dim gr As Graphics = Graphics.FromImage(bm2) gr.DrawImage(bm, 0, 0, New Rectangle(dx, dy, wid, hgt), GraphicsUnit.Pixel) Return bm End Function
Вот вызов этой функции:
GetFormImage(True).Save("F:\TLS\TLC\system_temp\ticketmaker_email.jpg", ImageFormat.Jpeg)
Что я уже пробовал:
Оглядевшись вокруг, большинство сказали, что ошибка была связана с правами доступа к файлам. Я знаю, что это не завивка, так как когда-то она прекрасно работала. Работал и раньше отлично.
Я видел, что есть что-то в потоке памяти, но не был уверен, как я это передам.
Любая обратная связь очень ценится!
Dave Kreskowiak
Вы загрузили этот файл изображения где-то еще в коде? Как выглядит этот код?
Richard Deeming
Это не решение вашей ошибки, но вы уверены, что возвращаете правильный ответ Bitmap
возражать? Я не вижу никакого смысла в создании и рисовании bm2
если вы просто собираетесь выбросить его и вернуться bm
вместо.
Thomas Erichsen
Вы нашли причину своей ошибки? Я спрашиваю, потому что столкнулся с идентичными симптомами, однако моя процедура button.onclick не включает никаких графических операций, она просто терпит неудачу при 2-м щелчке, прежде чем войти в обработчик событий...
Cody O'Meara
- Привет! К сожалению, я не смог заставить его работать должным образом. В итоге я занялся чем-то другим. К сожалению, все было не так хорошо, как могло бы быть.