[Minecraft Skin Stealer] .png in Temp kann wegen laufendes Prozesses nicht entferntwerden

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VoltexModz.

    [Minecraft Skin Stealer] .png in Temp kann wegen laufendes Prozesses nicht entferntwerden

    Soo... ich weiß nicht genau, ob ich in diesem Abteil richtig bin, aber ich hoffe es einfach mal. ^^Also ich habe vor 10 Minuten angefangen ein "Minecraft Tool" [Skin Stealer und Nick Name Checker] zu erstellen! Jetzt habe ich aber ein Problem dabei. :/ Ich bin ein "Anfänger" würde ich sagen, wenn das sogar noch zu nett formuliert ist :). Also der Minecraft Skin wird zum Speichern im Temp Ordner zwischengelagert und soll sich löschen, wenn ich einen neuen Skin angezeigt bekommen will aber ich bekomme immer den Fehler das diese Datei von einem Prozess verwendet wird und im Internet hab ich gerade nichts Hilfreiches gefunden! Ich hoffe, dass ihr könnt mir helfen und vielleicht sonstige Fehler von mir verbessert, damit ich mich verbessern kann ^^

    Hier mal der gesamte Code (Ja meine Code ist unordentlich ich entschuldige mich schon mal vorher hehe 8|X/^^) :

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Net
    3. Imports System.IO
    4. Public Class Form1
    5. Private Const AW_BLEND = &H80000
    6. Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Int32, ByVal dwTime As Int32, ByVal dwFlags As Int32) As Boolean
    7. Dim winHide As Integer = &H10000
    8. Dim winBlend As Integer = &H80000
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    10. PictureBox1.BackgroundImage = Nothing
    11. Dim abc As New WebClient
    12. Dim abcd As String = abc.DownloadString("https://api.mojang.com/users/profiles/minecraft/" & TextBox2.Text)
    13. If Not abcd = "" Then
    14. Label1.Text = "Vergeben"
    15. PictureBox1.BackgroundImage = New System.Drawing.Bitmap(New IO.MemoryStream(New WebClient().DownloadData("https://minotar.net/body/" & TextBox2.Text & "/100.png")))
    16. Else
    17. Label1.Text = "Nicht vergeben"
    18. End If
    19. End Sub
    20. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    21. Dim wc As New WebClient
    22. Try
    23. If IO.File.Exists(IO.Path.GetTempPath & "\minecraft_skin.png") Then
    24. IO.File.Delete(IO.Path.GetTempPath & "\minecraft_skin.png")
    25. End If
    26. wc.DownloadFile("https://minotar.net/skin/" & TextBox2.Text & ".png", IO.Path.GetTempPath & "\minecraft_skin.png")
    27. Catch ex As WebException
    28. MsgBox("Der Skin wurde nicht gefunden!")
    29. End Try
    30. Try
    31. PictureBox2.Image = Image.FromFile(IO.Path.GetTempPath & "\minecraft_skin.png")
    32. Catch ex As FileNotFoundException
    33. MsgBox("Der Skin kann nicht in die Vorschau geladen werden!")
    34. End Try
    35. Dim sfd As New SaveFileDialog
    36. sfd.Filter = "Minecraft Skin (*.png)|*.png"
    37. sfd.ShowDialog()
    38. Try
    39. IO.File.Copy(IO.Path.GetTempPath & "\minecraft_skin.png", sfd.FileName)
    40. Catch ex As Exception
    41. MsgBox("Konnte die Datei nicht speichern.")
    42. End Try
    43. End Sub
    44. Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    45. If TextBox2.Text = "BluRanger" Then
    46. MessageBox.Show("Dieser Skin kommt mir nicht auf diesen PC!", "Skin blacklist!", MessageBoxButtons.OK, MessageBoxIcon.Error)
    47. Close()
    48. End If
    49. If TextBox2.Text = "Notch" Then
    50. MessageBox.Show("Äh den braucht keiner... also nein.", "Was?!", MessageBoxButtons.OK, MessageBoxIcon.Error)
    51. Close()
    52. End If
    53. PictureBox1.BackgroundImage = Nothing
    54. Dim banana As New WebClient
    55. Dim banana2 As String = banana.DownloadString("https://api.mojang.com/users/profiles/minecraft/" & TextBox2.Text)
    56. If Not banana2 = "" Then
    57. Label1.Text = "Vergeben!"
    58. Label1.ForeColor = Color.Red
    59. PictureBox1.BackgroundImage = New System.Drawing.Bitmap(New IO.MemoryStream(New WebClient().DownloadData("https://minotar.net/body/" & TextBox2.Text & "/100.png")))
    60. Else
    61. Label1.Text = "Nicht vergeben!"
    62. Label1.ForeColor = Color.Green
    63. End If
    64. End Sub
    65. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    66. Me.Text = String.Format("{0} | {1}", Application.ProductName, Application.ProductVersion)
    67. End Sub
    68. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    69. AnimateWindow(Me.Handle.ToInt32, CInt(500), winHide Or winBlend)
    70. Me.Close()
    71. End Sub
    72. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    73. Process.Start("C:\Program Files (x86)\Minecraft\MinecraftLauncher.exe")
    74. End Sub
    75. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    76. Process.Start("https://account.mojang.com/login")
    77. End Sub
    78. End Class


    Ich hoffe ihr könnt mir helfen ^^

    Lg: VoltexModz ^^


    Thema nach Sonstige Problemstellungen verschoben und Codetags angepasst
    -Artentus

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

    Ganz grob überlesen würde ich mal sagen, dass sein Problem in Zeile 37 begraben liegt. Du musst dir erst einmal ein Image Objekt erstellen, in welches Du dann die Daten aus der Datei kopierst. Dann musst Du ein zweites Image Objekt erstellen und vom ersten die Daten in das zwei kopieren. Anschließen kannst Du dann die Referenz auf die Datei löschen, womit auch der Zugriff auf die Daten aufgehoben wird und du sie löschen kannst.

    Allerdings strotzt der Code nur so vor "Fehlern" (Keine richtige Namen vergeben, Code und UI werden nicht richtig getrennt, Import der WinAPI ist noch VB6 Style). Ich würde mal da anfangen, bevor Du dich um das Löschen der Datei kümmerst. Außerdem: Könntest Du den Code mal in Code Tags posten?

    Lg Radinator
    PS: Für Fragen stehe ich gerne offen ;D
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Danke Radinator! ^^ Ich werde versuchen den Code zu verbessern! Es war auch irgendwie drei oder vier Uhr morgens. xD Da komme ich immer gerne auf dumme Ideen und kümmere mich eigentlich nur darum das es geht und nicht um die Ordentlichkeit! Ich war da voller Verzweiflung da ich nicht klar denken konnte lol xD Aber ich versuche deinen Rat zu befolgen. ^^