2009-06-24 7 views
1

Je dois passer une simple chaîne à une fenêtre de commande (exécutant telnet), à partir d'une application winforms C# ... est-il un moyen simple de faire cela?C# écrire une chaîne simple à partir winforms -> invite cmd telnet

J'ai essayé ce qui suit, mais il est tout ou rien lors de la redirection standardinput--

l'application WinForms ne marche pas ont pour démarrer la fenêtre cmd ... la fenêtre cmd pourrait déjà être en cours d'exécution also-- je pensais ce serait peut-être comment communiquer avec it--

il y a 1 ou 2? s similaire à celle sur cela, mais personne n'a vraiment cloué ...

p/est ok aussi appelant ...

aidez s'il vous plaît!

Process p = new Process(); 
    StreamWriter sw; 
    //StreamReader sr; 
    //StreamReader err; 

    ProcessStartInfo psi = new ProcessStartInfo(@"cmd.exe", @"/C telnet 192.168.0.10"); 

    private void start 
    { 

     psi.WindowStyle = ProcessWindowStyle.Normal; 
     psi.RedirectStandardOutput = false; 
     psi.RedirectStandardInput = true; 

     psi.UseShellExecute = false; 
     psi.CreateNoWindow = false; 
     p.StartInfo = psi; 


     p.Start(); 

    } 

    private void write_to_cmd(object sender, EventArgs e) 
    { 

     psi.RedirectStandardInput = true; 
     sw = p.StandardInput; 
     ////sr = p.StandardOutput; 
     ////err = p.StandardError; 

     //sw.AutoFlush = true; 

     if (tbComm.Text != "") 
     sw.WriteLine(tbComm.Text); 


     ////sw.Close(); 

     ////textBox1.Text = sr.ReadToEnd(); 
     ////textBox1.Text += err.ReadToEnd(); 

     //p.WaitForExit(); 

    } 




} 

}

+1

J'ai une solution réalisable jusqu'ici ... définir un raccourci global, et utiliser SendKeys.Send (code); il est win32 appelle cependant ... –

+0

also-- (en utilisant aucun du code exemple ci-dessus) –

+0

mon être, vous devriez envisager de ne pas utiliser dotnet/WinForms, qu'en est-AutoIt – benPearce

Répondre

1

Oui, la redirection va être tout ou rien. Souhaitez-vous que l'utilisateur puisse envoyer des informations à la fois par programmation et via l'invite de commande? Je pense que vous voulez rediriger l'entrée standard vers telnet, pas l'invite de commande.

ProcessStartInfo ("telnet", "192.168.0.10");

En outre, vous pouvez ouvrir une session Telnet simplement en utilisant System.Net.Sockets.

Questions connexes