我正在尝试使用nbtstat获取客户端的mac地址.我正在使用System.Diagnostics.Process来执行命令.
Process p = new Process();
p.StartInfo.FileName = "nbtstat";
p.StartInfo.Arguments = string.Format("-a {0}", principal.Name);
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
不幸的是,该代码抛出了一个例外.
The system cannot find the file specified.
如果nbtstat的exe文件在System32文件夹中,它应该没有我想到的完整路径.但无论如何,我尝试使用完整路径.
p.StartInfo.FileName = @"C:\Windows\System32\nbtstat.exe";
代码仍然抛出异常.我可以使用其他命令,如ipconfig,getmac,ping等.这只是导致问题的nbtstat.我仔细检查了nbtstat.exe的目录,它位于右侧文件夹中.我也试过像这样使用ProcessStartInfo:
ProcessStartInfo info = new ProcessStartInfo();
// set properties like above
Process.Start(info);
这也没有用(如果这有效,我会很困惑,但上面的代码没有,因为它应该完全一样,对吧?).
我正在使用Windows Forms和.NET Framework 4.5.
最佳答案 要么切换到任何cpu或检查os verison并获取环境路径,请查看
https://stackoverflow.com/a/21028022/87956