1

我有这个非常简单的程序

Process process = new Process();
process.StartInfo.FileName = @"psexec";
process.Start();

但是当我运行它时,调试会说“系统找不到指定的文件”

如果我有相同的程序并通过“记事本”更改“psexec”,它可以工作并打开记事本。

Process process = new Process();
process.StartInfo.FileName = @"notepad";
process.Start();

这很奇怪,因为我的 psexec 在 System32 中,如果使用 Windows-Run 运行“psexec”,它可以工作。

预先感谢您的任何帮助。

更新:我指定了完整路径@="C:\Windows\System32\PSexec.exe",但它不起作用。但是,如果我将 Psexec 移动到,例如@"D:\psexec.exe"它可以工作!为什么会发生这种情况?

4

2 回答 2

3

从 c:\windows\system32 运行程序在 64 位操作系统上很麻烦。解决方法是 Project + Properties,Build 选项卡,将 Platform target 更改为 AnyCPU。或者将文件也复制到 c:\windows\syswow64。

或者只是不把它放在 Windows 目录中,它不是属于那里的操作系统特定文件。适当的位置是与您的 EXE 相同的目录。

您可以在这篇 MSDN 文章中了解有关文件系统重定向器的更多信息。

于 2012-11-30T18:00:24.853 回答
0

尝试指定“psexec”的完整路径

有任何属性“WorkingDirectory”,这可能会有所帮助。

于 2012-11-30T00:13:22.833 回答