[Visual Basic] Screenshot-tool

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von leex, 20. März 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 20. März 2011
    Screenshot-tool

    habe hier ein screenshot tool programmiert (videotut bei youtube)

    jetzt habe ich noch einen butten zum direkten upload auf einen ftp server hinzugefügt, weißt aber nicht was ich an den stellen wo "??????????" steht einsetzen muss, dass er mir den eben erstellen screenshot auch uploaded. kann mir jemand helfen??

    Code:
    Public Class Form1
    
     Private Property ex As Object
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
     Private Sub dopicture()
     Dim picture As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
     Dim graphic As Graphics = Graphics.FromImage(picture)
     graphic.CopyFromScreen(0, 0, 0, 0, picture.Size)
     PictureBox1.Image = picture
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Me.Hide()
     System.Threading.Thread.Sleep(500)
     dopicture()
     Me.Show()
     End Sub
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Speichern.Click
     Me.SaveFileDialog1.ShowDialog()
     Me.PictureBox1.Image.Save(Me.SaveFileDialog1.FileName)
     End Sub
    
     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Upload.Click
     Try
     My.Computer.Network.UploadFile(???????, "ftp://xxxxxx/html/screenshot/" + ???????, "xxx", "xxxx", True, 500)
     Catch ex As Exception
    
     End Try
     TextBox1.Text = "www.xxxxxxx.de/screenshot/" + ?????????
    
     End Sub
    
     Private Sub MessageBox(ByVal p1 As String)
     Throw New NotImplementedException
     End Sub
    
    End Class
    
     
  2. 20. März 2011
    AW: Screenshot-tool

    My.Computer.Network.UploadFile(sourceFileName ,address ,userName ,password ,showUI ,connectionTimeout ,onUserCancel)

    da wo die fragezeichen sind, muss also dateiname hin, und xxx musst du durch benutzername und passwort ersetzen.

    du musst also quasi den relativen pfad zum bild im ersten ??? angeben, und bei den 2ten musst du nur den dateinamen angeben


    grüße

    vielleicht solltest du dich mal damit richtig auseinander setzen, und nicht einfach blind youtube tutorials abschreiben. nur ein tipp.
     
  3. 20. März 2011
    AW: Screenshot-tool

    das ist mir schon klar dass da der dateinamen hinmuss ... aber ich will ja keine feste datei sondern brauche eine variable die auf den eben erstellen screenshot verweist und den dazugehörigen namen ...... mit konstanten hab ichs auch hinbekommen ;-)

    trotzdem danke
     
  4. 21. März 2011
    AW: Screenshot-tool

    Naja, mit der Methode UploadFile brauchst du aber eine Datei. Du kannst den Screenshot dazu im temporären Verzeichnis zwischenspeichern und anschließend wieder löschen.

    Natürlich ist das nicht gerade elegant. Stattdessen sollte das Bild lieber aus dem Arbeitsspeicher hochgeladen werden. Ich kenne VB nicht, aber es läuft ja auch mit dem .NET-Framework, oder? Denn da gibt es die zahlreichen Methoden des WebClient, mit denen du das umsetzten kannst.
     
  5. 21. März 2011
    AW: Screenshot-tool

    glaube schon das es mit .NET läuft, aber kanns dir nicht genau sagen, da das mein erstes wirkliches programm ist in VB und ich mich da nicht auskenne ...

    weißt sonst irgendjemand vielleicht weiter?
     
  6. 21. März 2011
    AW: Screenshot-tool

    Wenn du dich damit sowieso nicht auskennst, ist das auch nicht wirklich eine Option für dich. Mach es stattdessen, wie schon vorgeschlagen, mit einer temporären Datei, in die du das Bild speicherst. Diese lädst du dann hoch und löscht sie anschließend.
     
  7. 21. März 2011
    AW: Screenshot-tool

    ok ... und wie kann ich speichern ohne Dialog???
    und wie krieg ich die datei dann wieder für den upload (bezüglich variablen für pfad dort hin)?

    ok habs jetzt hinbekommen mit:
    Me.PictureBox1.Image.Save(Environ$("TEMP") + "\screenshot.jpg")

    weitere frage:
    wie kann ich erreichen dass falls eine datei mit gleichem namen vorhanden, namen + 1 (screenshot1.jpg oder so) ???
     
  8. 21. März 2011
    AW: Screenshot-tool

    Code:
    System.IO.Path.GetTempFileName()
    Auf diese Weise musst du dir darum gar keine Sorgen machen!
     
  9. 21. März 2011
    AW: Screenshot-tool

    aber ich hab ja jetzt einen festen namen vergeben was muss ich dann stattdessen eintragen?

    Code:
    Public Class Form1
    
     Private Property ex As Object
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
     Private Sub dopicture()
     Dim picture As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
     Dim graphic As Graphics = Graphics.FromImage(picture)
     graphic.CopyFromScreen(0, 0, 0, 0, picture.Size)
     PictureBox1.Image = picture
     Me.PictureBox1.Image.Save(Environ$("TEMP") + "\screenshot.jpg")
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Me.Hide()
     System.Threading.Thread.Sleep(300)
     dopicture()
     Me.Show()
     End Sub
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Speichern.Click
     Me.SaveFileDialog1.ShowDialog()
     Me.PictureBox1.Image.Save(Me.SaveFileDialog1.FileName)
     End Sub
    
     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Upload.Click
     Try
     My.Computer.Network.UploadFile(Environ$("TEMP") + "\screenshot.jpg", "ftp://web977@tag.thirty3.de/html/screenshot/" + "screenshot.jpg", "xxxxxx", "xxxxxx", True, 500)
     Catch ex As Exception
    
     End Try
     TextBox1.Text = "www.xxxxx.de/screenshot/" + "screenshot.jpg"
    
     End Sub
    
     Private Sub MessageBox(ByVal p1 As String)
     Throw New NotImplementedException
     End Sub
    
    End Class
    
     
  10. 22. März 2011
    AW: Screenshot-tool

    Du legst einfach eine Variable in der Klasse an und speicherst darin den Dateipfad, sobald du ihn erzeugst.
    Denk außerdem daran, die Datei später wieder zu löschen, sonst füllst du deinen Temp-Ordner ganz schnell mit Bildern.
     
  11. 22. März 2011
    AW: Screenshot-tool

    das beantwortet aber nicht meine frage bezüglich des namens ... der ja unterschiedlich sein muss, sodass er aufm ftp nicht überschrieben wird.....
     
  12. 22. März 2011
    AW: Screenshot-tool

    Dann mach halt Uhrzeit-Datum-Zufallsstring.jpg
    Sollte nicht so schwer sein. Wenn du jemanden suchst, der das für dich schreiben soll, dann schreib in den passenden Thread.
     
  13. 22. März 2011
    AW: Screenshot-tool

    Du solltest Dir schnell klar machen, dass Du nicht ständig Hilfe verlangen kannst ohne dir selber Gedanken darüber zu machen, geschweige denn selber mal nach Antworten zu suchen.

    Fang erstmal mit den Grundlagen an und arbeite dich dann Schritt für Schritt voran. Solltest du Probleme konkrete Fragestellungen haben, dann kannst Du ein Thema dazu erstellen, aber malen nach Zahlen ist hier nicht. Programmieren hat etwas mit Eigeninitiative zu tun und außer 'Wie geht dies und das' seh ich hier nicht.

    #closed
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.