Einfacher Launcher und doch so schwer?!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Einfacher Launcher und doch so schwer?!

      Hallo Community,

      nachdem Ihr ja sagted C# wäre besser für den Laucher bzw wieso ich dies nicht verwende. Wollte ich es nun mal probieren.

      Soweit sogut mit null Ahnung von C# ein paar Tutorials auf YouTube geschaut und weitere hilfe durch Mr. Google sind die ersten Schritte bereits getan.

      Das Problem ist nur das der Launcher mir jetzt sagt das die Datei welche dieser ausführen soll auf Knopfdruck nicht vorhanden sei. Dabei wurde aber vorher geprüft ob die vorhanden ist überhaupt und der Pfad wird auch Korrekt ausgegeben.

      Weiss jemand was falsch ist bzw wieso es mir sagt das die Datei nicht existiert?


      Hier mal der kleine Code :

      Quellcode

      1. using System;
      2. using System.Collections.Generic;
      3. using System.ComponentModel;
      4. using System.Data;
      5. using System.Diagnostics;
      6. using System.Drawing;
      7. using System.IO;
      8. using System.Linq;
      9. using System.Reflection;
      10. using System.Text;
      11. using System.Threading.Tasks;
      12. using System.Windows.Forms;
      13. namespace L2CraftingLauncher
      14. {
      15. public partial class Form1 : Form
      16. {
      17. String strAppDir = "";
      18. public Form1()
      19. {
      20. InitializeComponent();
      21. label2.Enabled = false;
      22. textBox1.Text = "79.143.181.80";
      23. strAppDir = @Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
      24. DirLabel.Text = strAppDir;
      25. }
      26. private void StartButton_Click(object sender, EventArgs e)
      27. {
      28. if(textBox1.Text.Length < 7)
      29. {
      30. DirLabel.Text = strAppDir;
      31. label2.Text = "Please enter a server ip in the box.";
      32. label2.Enabled = true;
      33. return;
      34. }
      35. if (File.Exists(Path.Combine(strAppDir, "l2.exe")) || File.Exists(Path.Combine(strAppDir, "l2.bin")))
      36. {
      37. if(!File.Exists(Path.Combine(strAppDir, "l2.exe")) && File.Exists(Path.Combine(strAppDir, "l2.bin")))
      38. {
      39. File.Move(Path.Combine(strAppDir, "l2.bin"), Path.Combine(strAppDir, "l2.exe"));
      40. }
      41. DirLabel.Text = Path.Combine(strAppDir, "l2.exe IP=" + textBox1.Text);
      42. startTheGame(Path.Combine(strAppDir, "l2.exe IP=" + textBox1.Text));
      43. }
      44. else if (File.Exists(Path.Combine(strAppDir, "system", "l2.exe")) || File.Exists(Path.Combine(strAppDir, "system", "l2.bin")))
      45. {
      46. if(!File.Exists(Path.Combine(strAppDir, "system", "l2.exe")) && File.Exists(Path.Combine(strAppDir, "system", "l2.bin")))
      47. {
      48. File.Move(Path.Combine(strAppDir, "system", "l2.bin"), Path.Combine(strAppDir, "system", "l2.exe"));
      49. }
      50. DirLabel.Text = Path.Combine(strAppDir, "system", "l2.exe IP=" + textBox1.Text);
      51. startTheGame(Path.Combine(strAppDir, "system", "l2.exe IP=" + textBox1.Text));
      52. }
      53. else
      54. {
      55. label2.Text = "Missing l2.bin file\r\nAdd the Launcher in Main or system folder of Lineage 2 client please.";
      56. label2.Enabled = true;
      57. }
      58. }
      59. private void startTheGame(String dir)
      60. {
      61. try
      62. {
      63. Process p = new Process();
      64. p.StartInfo.FileName = @dir;
      65. p.Start();
      66. }
      67. catch (Exception ex)
      68. {
      69. label2.Text = ex.Message + "\r\n" + dir;
      70. label2.Enabled = true;
      71. }
      72. }
      73. }
      74. }
      Alles anzeigen
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • startTheGame(Path.Combine(strAppDir, "l2.exe IP=" + textBox1.Text));

      Die Zeile ist der Übeltäter. Er kann die Datei "Pfad/l2.exe IP={Dein Text hier}" nicht finden. Willst du die Datei vielleicht mit einem Parameter starten? Meines Wissens nach geht das nicht einfach, indem man das hinter den Dateinamen dran hängt und das ganze dann in den Prozess-Dateinamen ranhängt. Die Process-Klasse bietet iirc das Attribut "Arguments" oder sowas in der Art - Da muss das ganze rein. :)
    • Kaev;334307 schrieb:

      startTheGame(Path.Combine(strAppDir, "l2.exe IP=" + textBox1.Text));

      Die Zeile ist der Übeltäter. Er kann die Datei "Pfad/l2.exe IP={Dein Text hier}" nicht finden. Willst du die Datei vielleicht mit einem Parameter starten? Meines Wissens nach geht das nicht einfach, indem man das hinter den Dateinamen dran hängt und das ganze dann in den Prozess-Dateinamen ranhängt. Die Process-Klasse bietet iirc das Attribut "Arguments" oder sowas in der Art - Da muss das ganze rein. :)


      Ahh jetzt hab ich es gefunden. Unter Process.StartInfo.Arguments kann man diese angeben ;-) Danke.

      Mal schauen was noch so kommt ^^