本帖最后由 jwz_hz 于 2014-06-20 11:09:24 编辑

解决方案 »

  1.   

    问题1:执行bat就必然会弹出窗口,这个没办法的.
    问题2:Process就是在调用CMD程序,它只能执行CMD中的方法,并返回CMD中能看到的结果
    而执行telnet的时候其实已经跳出了CMD程序,在新窗口打开了telnet程序.不知道超级终端是如何调用telnet的,反正肯定不是控制台.
    猜想应该是socket直连的吧,telnet端口号是23,直接用socket发数据应该是可行的.
      

  2.   


     C#中调用ping命令怎么隐藏CMD的窗口
    private void button1_Click(object sender, EventArgs e)
       {
       try
       {
       Process proc = new Process();   proc.StartInfo.FileName = "ping.exe";
         
         
       proc.StartInfo.Arguments = "192.168.0.1";
         
       proc.StartInfo.UseShellExecute = false;
       proc.StartInfo.CreateNoWindow = false;  
       proc.StartInfo.RedirectStandardOutput = true;
       proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;   
       proc.Start();   string output = proc.StandardOutput.ReadToEnd();   StreamWriter sw = new StreamWriter("c:/ping.txt");
       sw.Write(output);
       sw.Close();
       // MessageBox.Show(output);   // MessageBox.Show((proc.ExitCode).ToString());      }
       catch (Exception ex)
       {
       MessageBox.Show(ex.ToString());
       }
      
       }这样运行后,回弹出CMD的窗口,怎么隐藏?------解决方案--------------------
    C# code
    …………
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardInput = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.CreateNoWindow = true;
      

  3.   

    我新建个socket,然后连接到telnet的端口
    直接读取内容
    内容为:
    FFFB01
    FFFB03
    FFFD18
    FFFD1F
    这应该就是连接成功了.
    只是不知道代码的含义.
      

  4.   


    这样不行吧。cmd可以隐藏,但是telnet窗口是藏不了的。
      

  5.   


    用socket可以。
    网上找了段代码,可以实现登陆和执行简单的命令。
    http://blog.csdn.net/mevin/article/details/7181560
    但是不知道怎么获取“持续命令”的输出。
    比如我想登陆到数据库服务器,执行expdp命令导出dmp包。
    执行没问题,dmp包可以正常导出,但是想获取expdp的输出貌似不行
      

  6.   

    因为telnet是单独一个程序啊.
    你运行CMD,然后CMD开启了另一个程序,你可以设置CMD自身隐藏,但是CMD开启的另一个程序,你的程序就不能直接控制了.
    不知道在CMD里执行TELNET的时候有没有参数可以使它隐藏的.应该是没有..