2016-02-05 45 views
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"; 

该代码仍然引发我的例外。我可以使用其他命令,如ipconfiggetmac,ping等,这只是nbtstat这会导致问题。我再次检查了nbtstat.exe的目录,它位于正确的文件夹中。我使用ProcessStartInfo这样也试过:

ProcessStartInfo info = new ProcessStartInfo(); 
// set properties like above 
Process.Start(info); 

而且这并没有帮助(这将让我困惑,如果这个工程,但上面的代码不会,因为它应该是完全一样的,对吧?)。

我正在使用Windows窗体和.NET Framework 4.5。

+1

尝试用任何CPU –

+0

建筑啊,太棒了。我从来没有尝试过......谢谢:) – Roman

+1

参考http://scottiestech.info/2009/06/20/calling-a-32-bit-system-command-from-a-script-in- x64-windows /,您可能需要检查如何从win64 env调用win32文件。 – Anil

回答

相关问题