我想在远程PC上调用进程。 以下代码适用于本地但我无法使其适用于远程PC
Process proc1 = new Process();
if (File.Exists("C:\\myApp.exe"))
{
proc1.StartInfo.FileName = "C:\\myApp.exe";
proc1.Start();
proc1.Close();
}
答案 0 :(得分:3)
这里也提出了类似的问题:
How to execute a command in a remote computer?
其中一个答案是使用sysinternals psexec
另一个答案是使用WMI
答案 1 :(得分:0)
我同意Seth Flowers - psexec是一个很好的方法。
-
由于您将问题标记为C#,我将添加:
如果您正在询问,因为您正在创建一个分布式系统,其中主机正在子机上生成作业,那么您可以创建一个C#主机应用程序和一个C#客户端应用程序,并使用Windows Communication Foundation(WCF)将它们链接在一起。这将为您提供一个服务类,以便与主机中的其他计算机进行通信。一旦你可以在机器之间进行通信,你可以让主持人告诉孩子“运行这个应用程序”,你可以在孩子那边使用你的流程代码。
这是一篇很好的解释这个概念的文章,我之前已经使用过它(旁注,如果你使用它运行VS作为管理员,或者metadataBehavior对象将引发异常): http://www.codeproject.com/Articles/16765/WCF-Windows-Communication-Foundation-Example