2016-04-15 6 views
0

私は自分のSchool-Projectを終了したので、今は何も残っていないので、小さなコンソールアプリケーションでEastereggを実装しました。それはスターウォーズのアニメーションのtelnet (pkgmgr /iu:"TelnetClient")をインストールして呼び出す必要があります:Telnetへのインストールと接続[Console Application]

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);で終了した後、それは別のものを呼び出します。"telnet" + "o" + "towel.blinkenlights.nl"

はそれを行うには、私のアプリケーションは、CMD-プロンプト、Telnetがインストール開きます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");は1行でそれを使用することによって実行することができないということでしたので、私はまだ何も成功を

cmd.StandardInput.WriteLine("telnet"); 
cmd.StandardInput.WriteLine("o"); 
cmd.StandardInput.WriteLine("towel.blinkenlights.nl"); 

を試していません。あなたはこのコードを動作させるために何をすべきか知っていますか?ありがとう!

答えて

1

使用

ProcessStartInfo startInfo = new ProcessStartInfo("cmd"); 
startInfo.WindowStyle = ProcessWindowStyle.Normal; 

startInfo.Arguments = "/c telnet o towel.blinkenlights.nl"; 
Process.Start(startInfo); 

CMDプロセスがちょうど終了しない場合になるので必ずそのコマンドの作品を​​作ります。テスト中にCreateNoWindowfalse

を設定することを検討する必要があり、また

startInfo.Arguments = "/c ping google.com -t"; 

ような何かをしようと、すべてが動作することを確認するために

1

Environment.Exit(0)環境全体を閉じます。

コードだけがtelnet接続に到達できるように、プロセスのみを終了する必要があります。

関連する問題