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#