4
我正在尝试使用nbtstat
来获取我们客户端的mac地址。我正在使用System.Diagnostics.Process
来执行该命令。C#nbtstat进程无法找到指定文件
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。
尝试用任何CPU –
建筑啊,太棒了。我从来没有尝试过......谢谢:) – Roman
参考http://scottiestech.info/2009/06/20/calling-a-32-bit-system-command-from-a-script-in- x64-windows /,您可能需要检查如何从win64 env调用win32文件。 – Anil