-1

我想在远程电脑上调用一个进程。以下代码适用于本地,但我无法使其适用于远程电脑

Process proc1 = new Process();

if (File.Exists("C:\\myApp.exe"))
{
    proc1.StartInfo.FileName = "C:\\myApp.exe";
    proc1.Start();
    proc1.Close();

}
4

2 回答 2

3

这里也问了一个类似的问题:

如何在远程计算机上执行命令?

答案之一是使用 sysinternals psexec

另一个答案是使用WMI

于 2012-05-23T18:13:09.173 回答
0

我同意 Seth Flowers 的观​​点 - psexec 是一个很好的方法。

--

由于您将问题标记为 C#,因此我将添加:

如果您之所以问是因为您正在创建一个分布式系统,其中主机在子计算机上产生作业,那么您可以创建一个 C# 主机应用程序和一个 C# 客户端应用程序,并使用 Windows Communication Foundation (WCF) 将它们链接在一起。这将给你一个服务类来与主机上的其他机器进行通信。一旦你可以在机器之间进行通信,你可以简单地让主机告诉孩子“运行这个应用程序”,你可以在孩子端使用你的进程代码。

这是一篇很好的文章,解释了这个概念,我以前用过(旁注,如果你使用这个,请以管理员身份运行 VS,否则 metadataBehavior 对象会抛出异常): http: //www.codeproject.com/Articles/16765 /WCF-Windows-通信-基础-示例

于 2012-05-23T18:28:19.150 回答