المشاركات : 813
المواضيع 24
الإنتساب : Oct 2012
السمعة :
228
الشكر: 1145
تم شكره 2171 مرات في 815 مشاركات
01-06-18, 09:42 AM
(آخر تعديل لهذه المشاركة : 01-06-18, 09:44 AM {2} بواسطة عبدالله الدوسري.)
تم الشكر بواسطة: sendbad100 , ThreeDaysGrace , asemshahen5 , dubai.eig , سعود , محمد كريّم , moniam , elgokr , elgokr , السندبااد , عبد العزيز البسكري , hglogtd , YousefOkasha , عبد الله , princelovelorn , اسامه الهرماوي , أبووسم , muaamar , muaamar , مصمم هاوي , Anas Mahmoud , الماجيك مسعد , asmarsou , Alssqr2022 , Alssqr2022 , ahmed_king2023 , AmeenRashed
المشاركات : 1,545
المواضيع 33
الإنتساب : Jul 2016
السمعة :
255
الشكر: 6532
تم شكره 4340 مرات في 1696 مشاركات
السلام عليكم
الله يبارك فيك
جمعتكم مباركة
المشاركات : 9
المواضيع 1
الإنتساب : May 2018
السمعة :
1
الشكر: 2
تم شكره 6 مرات في 4 مشاركات
موضوع اكثرمن رائع شكرا لك
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
السلام عليكم ورحمة الله
شرح جميل استفدة منه كثير
بس عندي سؤال بارك الله فيك
في مجال وقت حدوث المشكله يطلع مربع للعميل تقوله هناك مشكله
وزر تحت
مكتوب في ارسل المشكله للمبرمج او لا ترسل
وعند الارسال تطلع لي معلومات رساله الغلط بالاضافه لاسم العميل طبعا الاسم يكون معرف من قبل مثل شرحك الكريم
empname as string
اتمنى وصلت الفكرة
ومن جديد شكرا على المعلومه لقيمة انا عن نفسي اسعد بردودك في مواضيعي
رمضان كريم
وكل عام وانت بالف خير
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
السلام عليكم ورحمة الله
اولا اشكرا الاستاذ عبدالله الدوسري تعلمت منه شي جديد
وكنت بغيت طريقة ارسال الايميل وطريقة ضهورة رساله الغلط بشكل جميل
غير الشكل المزعج للعملاء
والحمدالله بعد عدة تجارب وبحث حصلت كود وقمت بالتعديل عليه واضافة خيار الايميل وشغال تمام الحمدالله
والطريقة في ملف
myapplicationevents.vb
نفس طريقة شرح استاذنا عبدالله
انا اضفت هذا الكود
كود :
Namespace My
Partial Friend Class MyApplication
Private Delegate Sub SafeApplicationThreadException(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs)
Private Sub ShowDebugOutput(ByVal ex As Exception)
'Display the output form
Dim frmD As New frmDebug()
frmD.rtfError.AppendText(ex.ToString())
frmD.ShowDialog()
End Sub
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf AppDomain_UnhandledException
AddHandler System.Windows.Forms.Application.ThreadException, AddressOf app_ThreadException
End Sub
Private Sub app_ThreadException(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs)
'This is not thread safe, so make it thread safe.
If MainForm.InvokeRequired Then
' Invoke back to the main thread
MainForm.Invoke(New SafeApplicationThreadException(AddressOf app_ThreadException), New Object() {sender, e})
Else
ShowDebugOutput(e.Exception)
End If
End Sub
Private Sub AppDomain_UnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
ShowDebugOutput(DirectCast(e.ExceptionObject, Exception))
End Sub
Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
ShowDebugOutput(e.Exception)
End Sub
End Class
End Namespace
وعملت ملف جديد باسم
frmDebug.vb
والكود
كود :
Imports System.Net.Mail
Imports System.Reflection
Public Class frmDebug
''Public Property ParentControl As Control = Nothing
Public Sub New()
On Error Resume Next
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
rtfError.AppendText("Product Name: " & My.Application.Info.ProductName & vbNewLine)
' rtfError.AppendText("Product Version: " & ver & vbNewLine)
rtfError.AppendText(vbNewLine)
rtfError.AppendText("OS Name: " & My.Computer.Info.OSFullName & vbNewLine)
''IMPORTANT: This next line is .Net 4.0 only.
'' If you need to know if it is a 64 bit OS or not, you will need to use
'' a different method for any .Net older than 4.0
rtfError.AppendText("OS Platform: " & IIf(Environment.Is64BitOperatingSystem, "x64", "x86") & vbNewLine)
rtfError.AppendText(vbNewLine)
rtfError.AppendText("Error Output:" & vbNewLine)
End Sub
Private Function FormatBytes(ByVal bytes As Long) As String
If bytes < 1000 Then
Return CStr(bytes) & "B"
ElseIf bytes < 1000000 Then
Return FormatNumber(bytes / 1024, 2) & "KB"
ElseIf bytes < 1000000000 Then
Return FormatNumber(bytes / 1048576, 2) & "MB"
Else
Return FormatNumber(bytes / 1073741824, 2) & "GB"
End If
End Function
Private Class AsmComparer
Implements IComparer(Of Assembly)
Public Function Compare(x As System.Reflection.Assembly, y As System.Reflection.Assembly) As Integer Implements System.Collections.Generic.IComparer(Of System.Reflection.Assembly).Compare
Return String.Compare(x.ToString(), y.ToString())
End Function
End Class
Private Sub mnuCopy_Click(sender As System.Object, e As System.EventArgs) Handles mnuCopy.Click
btnCopy_Click(btnCopy, e)
End Sub
Private Sub btnCopy_Click(sender As System.Object, e As System.EventArgs) Handles btnCopy.Click
Me.Close()
End Sub
Private Sub frmDebug_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'OPTIONAL: This is just some basic code to dynamically size the output window based on the text.
Text = "unexpected error occurred!"
On Error Resume Next
Dim longest As String = ""
For Each line As String In rtfError.Lines
If line.Length > longest.Length Then longest = line
Next line
Dim g As Graphics = rtfError.CreateGraphics()
Dim w As Integer = CInt(g.MeasureString(longest, rtfError.Font).Width) + 88
Dim h As Integer = CInt(g.MeasureString(rtfError.Text, rtfError.Font).Height) + 200
Dim s As Screen = Screen.FromControl(Me)
''If ParentControl IsNot Nothing Then s = Screen.FromControl(ParentControl)
If Me.Width < w Then
If w < (s.WorkingArea.Width - 88) Then
Me.Width = w
Else
Me.Width = (s.WorkingArea.Width - 88)
End If
Me.Left = s.WorkingArea.Left + ((s.WorkingArea.Width / 2) - (Me.Width / 2))
End If
If Me.Height < h Then
If h < (s.WorkingArea.Height - 88) Then
Me.Height = h
Else
Me.Height = (s.WorkingArea.Height - 88)
End If
Me.Top = s.WorkingArea.Top + ((s.WorkingArea.Height / 2) - (Me.Height / 2))
End If
End Sub
Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential("error@error.net", "pas")
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "mail.error.net"
e_mail = New MailMessage()
e_mail.From = New MailAddress("error@error.net")
e_mail.To.Add("error@error.net")
e_mail.Subject = "ERROR"
e_mail.IsBodyHtml = False
e_mail.Body = rtfError.Text & TextDataFormat.Text
Smtp_Server.Send(e_mail)
MsgBox("Mail Sent Thanks ")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
End Sub
End Class
والرساله الي توصل فيها معلومات الجهاز والمشكله
إقتباس : ' Add any initialization after the InitializeComponent() call.
rtfError.AppendText("Product Name: " & My.Application.Info.ProductName & vbNewLine)
' rtfError.AppendText("Product Version: " & ver & vbNewLine)
rtfError.AppendText(vbNewLine)
rtfError.AppendText("OS Name: " & My.Computer.Info.OSFullName & vbNewLine)
''IMPORTANT: This next line is .Net 4.0 only.
'' If you need to know if it is a 64 bit OS or not, you will need to use
'' a different method for any .Net older than 4.0
rtfError.AppendText("OS Platform: " & IIf(Environment.Is64BitOperatingSystem, "x64", "x86") & vbNewLine)
rtfError.AppendText(vbNewLine)
rtfError.AppendText("Error Output:" & vbNewLine)
وفي النهاية اكرر شكري للاستاذ عبدالله تعلمنا منك شي جديد
شكرا
المشاركات : 7,394
المواضيع 803
الإنتساب : Sep 2013
السمعة :
847
الشكر: 13249
تم شكره 18797 مرات في 4415 مشاركات
ماشاء الله لا قوة الا بالله
شرح وافي وكافي.
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
مشاء الله عليك اخى عبدالله الدوسري
ابداع فى الشرح وتوصيل المعلومة
لن يستفاد منه اصحاب المشاريع الكبيرة والخبارات
بال ومن هو يريد البداء فى التعلم ايضاً
وفيق بالشرح بكل تفاصيله
احلى +1 وتقييم
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 298
المواضيع 87
الإنتساب : Sep 2013
السمعة :
9
الشكر: 970
تم شكره 391 مرات في 78 مشاركات
وعليكم السلام ورحمة الله وبركاتت
بيض الله وجهك يا رجال، وزادك الله علماً ونفعاً للناس.
شرح فوق الممتاز.
قال رسول الله صلى الله عليه وسلم ( من قال لا إله إلا الله دخل الجنة ) حديث صحيح.
قال رسول الله صلى الله عليه وسلم ( كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان للرحمن : سبحان الله وبحمده سبحان الله العظيم ) حديث صحيح.
المشاركات : 24
المواضيع 10
الإنتساب : Aug 2014
السمعة :
0
الشكر: 171
تم شكره 13 مرات في 7 مشاركات
(01-06-18, 09:42 AM)عبدالله الدوسري جزاك الله خيرا على كتب : السلام عليكم ورحمة الله وبركاتة
شرح سريع لجملة إصطياد الأخطاء
للأعضاء الذي يسألون عن
Try ... Catch ... Finally Statement
المشاركات : 761
المواضيع 134
الإنتساب : May 2015
السمعة :
62
الشكر: 667
تم شكره 1388 مرات في 627 مشاركات
لازلت هاويا في الدوت نت ولكن عندما أرى مثل هذه الشروحات الجميلة انجذب أكثر وأكثر لهذا العالم الملى بالاسرار .
شرح موفق استاذنا الكبير
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
|