Minecraft Launcher..... (Download)

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Gamernamer.

    Minecraft Launcher..... (Download)

    Hallöchen ;)
    Ich brauche mal eure Hilfe!
    Nun ich bin zu zeit am "programmieren" von einem Minecraft Launcher, bis jetzt habe ich alles hinbekommen, Login usw auch das downloaden und starten nur würde ich gerne eine Progressbar einbauen die dann zeigt wie weit es schon heruntergeladen wurde
    (die Datein) gesagt getan. Nur jetzt kommt mein Problem, ich weiß nicht was ich Falsch gemacht habe, jedefalls immer wenn ich den Launcher dann etwas herunterladen lasse, passiert garnichts in der Progressbar!
    Hoffentlich könnt ihr mir helfen!

    Hier der Code (er wirft keine Fehler aus!):

    Quellcode

    1. {
    2. WebClient web = new WebClient();
    3. web.DownloadFile("http://dl.bukkit.org/downloads/craftbukkit/get/02549_1.7.5-R0.1/craftbukkit-dev.jar", templocation + "client_full.zip");
    4. web.DownloadProgressChanged += web_DownloadProgressChanged;
    5. label4.Text = "Extracting...";
    6. Shell32.Shell sc = new Shell32.Shell();
    7. Directory.CreateDirectory(@"C:\temp\.minecraft");
    8. Shell32.Folder output = sc.NameSpace(@"C:\temp\.minecraft\");
    9. Shell32.Folder input = sc.NameSpace(templocation + "client_full.zip");
    10. output.CopyHere(input.Items(), 256);
    11. label4.Text = "Cleaning up...";
    12. File.Delete(templocation + "client_full.zip");
    13. }
    14. new Microsoft.VisualBasic.Devices.Computer().FileSystem.CopyDirectory("C:\\temp\\.minecraft", folderlocation, true);
    15. Directory.Delete("C:\\temp\\.minecraft", true);
    16. clientExists = true;
    17. ismodded = true;
    18. }
    19. if (clientExists && ismodded)
    20. {
    21. bool authed = false;
    22. string user, session = "";
    23. string[] res = verifyUser(username.Text, password.Text, out authed);
    24. if (authed)
    25. {
    26. user = res[2];
    27. session = res[3];
    28. StartMinecraft(user, session);
    29. Application.Exit();
    30. }
    31. }
    32. }
    33. void web_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    34. {
    35. int bytesin = int.Parse(e.BytesReceived.ToString());
    36. int totalbytes = int.Parse(e.TotalBytesToReceive.ToString());
    37. int kb1 = bytesin / 1024;
    38. int kb2 = totalbytes / 1024;
    39. label1.Text = kb1.ToString() + "Kb out of" + kb2.ToString() + "KB (" + e.ProgressPercentage.ToString() + "%)";
    40. progressBar.Value = e.ProgressPercentage;
    41. }



    Danke schonmal für all eure Antworten!

    0%
    So jetzt habe ich alles geschafft,... nur was jetzt komisch ist, also um sich ja in Minecraft einzuloggen usw muss man ja Password und Benutzernamen eingeben, wenn man den richtigen eingibt, dann schließt sich das Fenster und wenn man den Falschen eingibt bleibt es offen und Lädt sich das Zeug herunter, hast du eine idee woran das liegen könnte? Ohne DownloadFileAsync hatte es funktioniert....

    Quellcode

    1. {
    2. WebClient web = new WebClient();
    3. web.DownloadFileAsync(new Uri("https://dl.dropboxusercontent.com/u/150826306/client_full.zip"), templocation + "client_full.zip");
    4. web.DownloadProgressChanged += web_DownloadProgressChanged;
    5. label4.Text = "Extracting...";
    6. Shell32.Shell sc = new Shell32.Shell();
    7. Directory.CreateDirectory(@"C:\temp\.minecraft");
    8. Shell32.Folder output = sc.NameSpace(@"C:\temp\.minecraft\");
    9. Shell32.Folder input = sc.NameSpace(templocation + "client_full.zip");
    10. output.CopyHere(input.Items(), 256);
    11. label4.Text = "Cleaning up...";
    12. System.IO.FileInfo fi = new System.IO.FileInfo(templocation + "client_full.zip");
    13. try
    14. {
    15. fi.Delete();
    16. }
    17. catch (System.IO.IOException )
    18. {
    19. Console.WriteLine();
    20. }
    21. }
    22. new Microsoft.VisualBasic.Devices.Computer().FileSystem.CopyDirectory("C:\\temp\\.minecraft", folderlocation, true);
    23. Directory.Delete("C:\\temp\\.minecraft", true);
    24. clientExists = true;
    25. ismodded = true;
    26. }
    27. if (clientExists && ismodded)
    28. {
    29. bool authed = false;
    30. string user, session = "";
    31. string[] res = verifyUser(username.Text, password.Text, out authed);
    32. if (authed)
    33. {
    34. user = res[2];
    35. session = res[3];
    36. StartMinecraft(user, session);
    37. Application.Exit();
    38. }
    39. }
    40. }
    41. void web_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    42. {
    43. int bytesin = int.Parse(e.BytesReceived.ToString());
    44. int totalbytes = int.Parse(e.TotalBytesToReceive.ToString());
    45. int kb1 = bytesin / 1024;
    46. int kb2 = totalbytes / 1024;
    47. label1.Text = kb1.ToString() + "Kb out of" + kb2.ToString() + "KB (" + e.ProgressPercentage.ToString() + "%)";
    48. progressBar.Value = e.ProgressPercentage;
    49. }
    DownloadFileASync muss verwendet werden.

    C#-Quellcode

    1. private void web_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
    2. {
    3. this.Text = e.ProgressPercentage + " %";
    4. ProgressBar1.Value = e.ProgressPercentage;
    5. Label1.Text = (e.BytesReceived / 1024).ToString("0.##") + " KB von " + (e.TotalBytesToReceive / 1024).ToString("0.##") + " KB geladen";
    6. }

    Quelle

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