我正在尝试使用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();
不幸的是,该代码会引发异常。
系统找不到指定的文件。
如果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窗体和.NET Framework 4.5。