安装并连接到Telnet [控制台应用程序]
问题描述:
由于我完成了学校项目,现在没有任何东西了,我开始在我的小控制台应用程序中实现Easteregg。应该安装Telnet (pkgmgr /iu:"TelnetClient")
并调用星球大战动画:"telnet" + "o" + "towel.blinkenlights.nl"
安装并连接到Telnet [控制台应用程序]
要做到这一点,我的应用开辟了一个CMD提示符,它安装远程登录:
public static void EastereggInstall()
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("pkgmgr /iu:'TelnetClient'");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
Environment.Exit(0);
}
后的任务是完成与Environment.Exit(0);
它调用另一个CMD-提示连接到启动动画Telnet服务器:
public static void EastereggPlay()
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("telnet" + "o" + "towel.blinkenlights.nl");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
}
然而,第一Commandprompt关闭本身并没有错误消息任何责任。 我也尝试使用Console.ReadKey()
来获得错误,但仍然没有有用的信息。我的第一个念头是cmd.StandardInput.WriteLine("telnet" + "o" + "towel.blinkenlights.nl");
不能由一个单一的线用它来执行,所以我尝试
cmd.StandardInput.WriteLine("telnet");
cmd.StandardInput.WriteLine("o");
cmd.StandardInput.WriteLine("towel.blinkenlights.nl");
仍然没有成功。那么你们知道我应该怎么做才能让这段代码起作用吗?谢谢!
答
使用
ProcessStartInfo startInfo = new ProcessStartInfo("cmd");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.Arguments = "/c telnet o towel.blinkenlights.nl";
Process.Start(startInfo);
确保命令的工作,因为CMD过程将只是退出如果没有。
,以确保一切正常运作,尝试像
startInfo.Arguments = "/c ping google.com -t";
此外,在测试你应该考虑设置CreateNoWindow
到false
答
Environment.Exit(0)关闭整个环境。
您应该只关闭进程,以便代码可以到达telnet连接。