如何从c#项目调用另一个流程?
是否可以从主程序调用某些进程(或exe),向其发送一些参数,完成一些处理并返回结果?如果可能,哪种方法是最好的如何从c#项目调用另一个流程?,c#,wpf,serial-port,C#,Wpf,Serial Port,是否可以从主程序调用某些进程(或exe),向其发送一些参数,完成一些处理并返回结果?如果可能,哪种方法是最好的 我有一个管理磨坊的wpf应用程序。此应用程序用于不同的磨机。唯一的区别是磨机中用于称重的串行端口通信不同。目前,称重部分已编程到应用程序中。但这使得维护变得很困难,因为我必须根据地磅拥有不同版本的项目。所以我希望它是这样的:我有主项目的单一版本。主项目调用另一个进程(或exe)并发送一些参数。此exe进行称重并发回重量 如果您只有另一个exe文件,那么您可以使用(取自) 改为使用库项
我有一个管理磨坊的wpf应用程序。此应用程序用于不同的磨机。唯一的区别是磨机中用于称重的串行端口通信不同。目前,称重部分已编程到应用程序中。但这使得维护变得很困难,因为我必须根据地磅拥有不同版本的项目。所以我希望它是这样的:我有主项目的单一版本。主项目调用另一个进程(或exe)并发送一些参数。此exe进行称重并发回重量 如果您只有另一个exe文件,那么您可以使用(取自)
改为使用库项目(DLL)。你编写了第二个进程吗?@Micah Armantrout:没有,只是想知道我应该创建一个单独的exe还是按照SLaks@sony这实际上是教科书对库的定义。@索尼:我建议创建一个库项目,它将拆分出一个DLL。然后,您可以通过将DLL添加为对主项目的引用来调用DLL上的方法。您希望尽可能多地重复使用代码。例子:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "dcm2jpg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
catch
{
// Log error.
}