-4

所以我正在尝试制作一个我的世界启动器,但它不会登录到服务器,因为我的帐户已迁移到 Mojang,所以我使用我的电子邮件而不是我的用户名登录,但有一种方法可以获取我的用户名,所以我发现了如何,但我需要使用 c# 从此文本中获取一串代码。

"134382:deprecated:USERNAME:7a909de0530c310c69c:dba0c48a038a66bb98"

我需要将“deprecated:USERNAME”放入一个单独的文本框中,我将如何去做,注意我在 c# 中编码并获取上面的代码,我使用这个代码。

http://login.minecraft.net/?user=USERNAME&password=PASSWORD&version=15

这是到目前为止的代码

private void PlayBtn_Click(object sender, EventArgs e)
    {
        string username = UsernameBox.Text;
        string password = PasswordBox.Text;
        Process proc = new Process();
        startMinecraft(true, 256, 1024, username, username, false);
    }
    public static void startMinecraft(bool mode, int ramMin, int ramMax, string username, string sessionID, bool debug)
    {
        string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\";
        string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\";
        Process proc = new Process();
        if (debug == true)
        {
            proc.StartInfo.FileName = "java";
        }
        else
        {
            proc.StartInfo.FileName = "javaw";
        }

        //Online and offline modes
        if (mode == true)
        {
            proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username + " " + sessionID;
        }
        else
        {
            proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username;
        }
        proc.Start();
    }
4

3 回答 3

3

如果订单保持不变,你可以试试这个

  string[] results = yourstring.split(':');
  yourtextbox.Text = results[1]+ ":" + results[2];   //results1 will give depreciated and results 2 will give UsErname
于 2013-08-03T12:09:37.423 回答
2

您尚未完全指定源字符串的格式。现在,我假设它的形式是

*:deprecated:USERNAME:*:*

where*是任意的但不包含:.

然后你可以说:

var fields = source.Split(':');
string target = fields[1] + ":" + fields[2];

现在您可以分配target给您的文本框。

于 2013-08-03T12:10:38.080 回答
0

这是我需要的工作代码:) 非常感谢您的帮助。

WebClient client = new WebClient();
        String htmlCode = client.DownloadString("http://login.minecraft.net/?user=USERNAME&password=PASSWORD&version=15");
        label1.Text = htmlCode;
        string[] results = htmlCode.Split(':');
        label2.Text = results[1] + ":" + results[2];
        label3.Text = results[2];
于 2013-08-03T13:24:58.177 回答