Screenshot auf FTP Server

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ThePlexian.

    Screenshot auf FTP Server

    Okay ich arbeite immoment an einem Screenshot tool das Dateien auf einen FTP Server läd.
    Ich habe bereits geschafft das es ausgewählte Dateien hochläd und mir die URL dann ins Clipboard kopiert.
    Wie kann ich einen Screenshot direkt hochladen, ohne diesen irgendwo zu speichern?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim file As String
    3. Dim username As String = "username"
    4. Dim password As String = "pw"
    5. Dim randoming As String
    6. Public Function RandomString(ByVal length As Integer) As String
    7. Dim sb As New System.Text.StringBuilder
    8. Dim chars() As String = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
    9. "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "X", _
    10. "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
    11. Dim upperBound As Integer = UBound(chars)
    12. For x As Integer = 1 To length
    13. sb.Append(chars(Int(Rnd() * upperBound)))
    14. Next
    15. Return sb.ToString
    16. End Function
    17. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    18. OpenFileDialog1.ShowDialog()
    19. file = OpenFileDialog1.FileName
    20. End Sub
    21. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    22. On Error Resume Next
    23. randoming = RandomString(7)
    24. My.Computer.Network.UploadFile(file, "ftp://ftpserver.com" & randoming & ".png", username, password)
    25. MsgBox("Upload complete.")
    26. Clipboard.SetText("ftppath" & randoming & ".png")
    27. End Sub
    28. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    29. Dim wc As New Net.WebClient
    30. wc.Credentials = New Net.NetworkCredential("username", "passwort")
    31. End Sub
    32. End Class
    Clipboard Zyklisch abfragen, befindet sich ein Bild darin, es auslesen und auf den Webspace hochladen.

    Edit: Bzw. vlt. gibt es auch ein WMI Event was ausgelöst wird wenn sich etwas in der Zwischenablage befindet.

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

    Dodo schrieb:

    befindet sich ein Bild darin

    Code:

    VB.NET-Quellcode

    1. If Clipboard.ContainsImage() Then
    2. My.Computer.Network.UploadFile(Clipboard.GetImage(), "ftpserver" & randoming & ".png", username, password)
    3. End If


    Fehler:
    Spoiler anzeigen
    Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "UploadFile" mit diesen Argumenten aufgerufen werden kann:
    "Public Sub UploadFile(sourceFileName As String, address As System.Uri, userName As String, password As String)": Der Wert vom Typ "System.Drawing.Image" kann nicht in "String" konvertiert werden.
    "Public Sub UploadFile(sourceFileName As String, address As System.Uri, userName As String, password As String)": Der Wert vom Typ "String" kann nicht in "System.Uri" konvertiert werden.
    "Public Sub UploadFile(sourceFileName As String, address As String, userName As String, password As String)": Der Wert vom Typ "System.Drawing.Image" kann nicht in "String" konvertiert werden. C:\Users\nichtmeinname\Documents\Visual Studio 2010\Projects\VB2010\ftpshare\ftpshare\Form1.vb 48 13 ftpshare
    ich denke UploadData hat die gleiche Signatur wie UploadImage, nur das der erste Parameter nicht der Pfad ist, sondern ein ByteArray.
    Zum Bytearray, siehe hier
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais