我尝试了两种不同的启动进程的方法。
第一种
定义是作为参数传递给Start方法的:
System.Diagnostics.Process.Start("excel", string.Format("\"{0}\"", ExcelFileBox.Text.ToString()));
我的想法:
这种方法可以成功启动,但我不知道如何从中获取反馈信息。
第二种
我开始研究ProcessStartInfo,因为我想知道Excel是否成功启动,例如,虽然用户的计算机上很可能已经安装了Excel,但并不能保证,如果它没有启动,让用户认为它已经成功启动是愚蠢的。
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo
{
FileName = "excel",
Arguments = string.Format("\"{0}\"", ExcelFileBox.Text.ToString()),
ErrorDialog = true,
UseShellExecute = false,
WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
};
try
{
System.Diagnostics.Process.Start(startinfo);
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
我的想法:
这会出现错误:“系统找不到指定的文件”,但不清楚它是指Excel应用程序还是我的文件。无论如何,虽然我欣赏错误消息的能力,但目前不应该收到它。
对于如何知道这是否成功发生的想法、建议和想法?
已解决
我将启动进程的第一种方式放入try-catch中,它完美地工作。