当前位置:编程学习 > C#/ASP.NET >>

C# cmd.exe问题

在cmd中 输入 telnet IP地址 回车
下面会出现loginname  输入 用户名 回车
会出现 pwd 输入 密码后 回车

输入命令 


这几个步骤  通过C# 如何实现???请大虾们赐教。小弟感激不尽。 --------------------编程问答-------------------- if
else --------------------编程问答-------------------- 不是 if  else 啊

是要process p=new process();

p.StanInfo="cmd.exe";

这种的啊 --------------------编程问答-------------------- 使用 System.Management 命名空间中的类建立远程连接时,使用 DCOM 作为基础远程机制。WMI 远程连接必须符合 DCOM 对模拟和身份验证的安全要求。不同操作系统之间的连接(例如,从 计算机发起的与 计算机的连接)所需要的模拟和身份验证级别可能与两台 计算机之间的连接不同。有关详细信息,请参阅 MSDN Library 中 Windows Management Instrumentation 文档中的“Connecting to WMI on a Remote Computer(连接到远程计算机上的 WMI)”。

默认情况下,范围会绑定到本地计算机和 root\cimv2 系统命名空间上。但是,可以在指定构造函数路径的字符串中更改命名空间,或使用 ManagementPath 对象。用于路径的字符串与其他 WMI 路径遵循相同的规则,并且反斜杠 (\) 必须转义。有关详细信息,请参阅 MSDN Library 中的 Windows Management Instrumentation 文档中的“Describing the Location of a WMI Object(描述 WMI 对象的位置)”。

另外,在进行远程连接时,可以为当前登录用户以外的用户指定凭据,该远程计算机的操作将在指定用户的上下文中执行。这可以使用 ConnectionOptions 对象来完成。

--------------------编程问答-------------------- 上楼说的太深奥...小弟不明白,小弟想要点代码瞧瞧..

--------------------编程问答-------------------- 快来看看那,怎么实现啊?   无助... --------------------编程问答-------------------- --------------------编程问答-------------------- 光用c#调用cmd是没法实现的。你可以考虑用vb写script --------------------编程问答-------------------- System.Diagnostics.Process pPro = new System.Diagnostics.Process();
            pPro.StartInfo.FileName = "cmd.exe";
            pPro.StartInfo.UseShellExecute = false;
            pPro.StartInfo.RedirectStandardInput = true;
            pPro.StartInfo.RedirectStandardOutput = true;
            pPro.StartInfo.RedirectStandardError = true;
            pPro.StartInfo.CreateNoWindow = true;
            pPro.Start();
            pPro.StandardInput.WriteLine(" netstat -an ");
            pPro.StandardInput.WriteLine("exit");
            StreamReader reader = pPro.StandardOutput;//截取输出流
            string strAllInfo = "";
            string strLocalInfo = "";
            string strLine = reader.ReadLine();
            int i = 0;
            while (!reader.EndOfStream)
            {
                strAllInfo += strLine + "\r\n";
                i++;

                if (i < 9)//去掉之前相关信息
                {

                }
                else
                {
                    if (strLine.Trim().Length > 0)
                    {
                        strLine = strLine.Trim();
                        Regex r = new Regex(@"\s+");
                        string[] strArr = r.Split(strLine);
                        strLocalInfo += strArr[1] + "|\r\n";
                    }
                }
                strLine = reader.ReadLine();
            }
            pPro.WaitForExit();
            pPro.Close();
            reader.Close();

楼主参考下。 --------------------编程问答-------------------- 谢谢大家,上述功能已实现:
散分
--------------------编程问答-------------------- 代码如下:大家可以参考:

                IPAddress ipaddr = IPAddress.Parse("192.168.1.1");
                IPEndPoint ipep = new IPEndPoint(ipaddr, int.Parse("23"));
                Socket mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                mysocket.Connect(ipep);
                char[] sendfirst = new char[3];
                sendfirst[0] = (char)(255);
                sendfirst[1] = (char)(252);
                sendfirst[2] = (char)(24);
                byte[] sendfirstbytetemp = Encoding.Unicode.GetBytes(sendfirst);
                byte[] sendfirstbyte = new byte[sendfirstbytetemp.Length / 2];
                sendfirstbyte[0] = sendfirstbytetemp[0];
                sendfirstbyte[1] = sendfirstbytetemp[2];
                sendfirstbyte[2] = sendfirstbytetemp[4];
                mysocket.Send(sendfirstbyte, 0, sendfirstbyte.Length, SocketFlags.None);
                Thread.Sleep(2000);
                byte[] aaa = new byte[255];
            //输入用户名
                string username = "admin";
                byte[] sendusernametemp = Encoding.ASCII.GetBytes(username);
                byte[] sendusername = new byte[sendusernametemp.Length];
                char[] closechar = new char[2];
                closechar[0] = (char)(10);
                closechar[1] = (char)(13);
                byte[] closebyte = Encoding.ASCII.GetBytes(closechar);
                for (int i = 0; i < sendusernametemp.Length; i++)
                {
                    sendusername[i] = sendusernametemp[i];
                }
                mysocket.Send(sendusername, 0, sendusername.Length, SocketFlags.None);
                Thread.Sleep(2000);
               //输入回车
                string dd = "\r";
                byte[] ddtemp = Encoding.ASCII.GetBytes(dd);
                byte[] sendddtemp = new byte[ddtemp.Length];
                for (int i = 0; i < ddtemp.Length; i++)
                {
                    sendddtemp[i] = ddtemp[i];
                }
                mysocket.Send(sendddtemp, 0, sendddtemp.Length, SocketFlags.None);
                Thread.Sleep(2000);
            //输入密码
                string pwd = "admin";
                byte[] sendpwdtemp = Encoding.ASCII.GetBytes(pwd);
                byte[] sendpwd = new byte[sendpwdtemp.Length];
                
                for (int i = 0; i < sendpwdtemp.Length; i++)
                {
                    sendpwd[i] = sendpwdtemp[i];
                }
                mysocket.Send(sendpwdtemp, 0, sendpwdtemp.Length, SocketFlags.None);
                Thread.Sleep(2000);
            //输入回车
                string ddd = "\r";
                byte[] dddtemp = Encoding.ASCII.GetBytes(ddd);
                byte[] senddddtemp = new byte[dddtemp.Length];
                for (int i = 0; i < dddtemp.Length; i++)
                {
                    senddddtemp[i] = dddtemp[i];
                }
                mysocket.Send(sendddtemp, 0, senddddtemp.Length, SocketFlags.None);
                Thread.Sleep(3000);
            //输入命令
                string kk = @"cmd_3g_send.sh ""AT+BMCIDCLR""";
                byte[] kktemp = Encoding.ASCII.GetBytes(kk);
                byte[] senkktemp = new byte[kktemp.Length];
                for (int i = 0; i < kktemp.Length; i++)
                {
                    senkktemp[i] = kktemp[i];
                }
                mysocket.Send(senkktemp, 0, senkktemp.Length, SocketFlags.None);
                Thread.Sleep(2000);

            //输入回车
                string gg = "\r";
                byte[] ggtemp = Encoding.ASCII.GetBytes(gg);
                byte[] sendggtemp = new byte[ggtemp.Length];
                for (int i = 0; i < ggtemp.Length; i++)
                {
                    sendggtemp[i] = ggtemp[i];
                }
                mysocket.Send(sendggtemp, 0, sendggtemp.Length, SocketFlags.None);
                Thread.Sleep(3000);

                //接收数据
                byte[] recvdatapwd = new byte[1025];
                mysocket.Receive(recvdatapwd, 0, mysocket.Available, SocketFlags.None);
                string recvpwdstr = Encoding.ASCII.GetString(recvdatapwd);
                recvpwdstr = recvpwdstr.Trim();
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,