2

我有一个应用程序,它将一个接一个地打开两个 microsoft ppsx 文件。为此,我使用了进程对象来运行文件。下面提到

Process process = Process.Start(@"E:\test\test.ppsx");

我需要以这样的方式运行文件,即在完成第一个文件后,第二个文件应该自动运行。有人可以建议我如何实现这一目标。

4

4 回答 4

3

您可以使用WaitForExit方法等待结束进程(类似这样):

var process1 = Process.Start(...);
process1.WaitForExit();

var process2 = Process.Start(...);

或订阅一个Process.Exited事件并在第一个事件之后执行另一个进程。检查供您参考。

于 2013-05-02T07:35:35.110 回答
1

你可以使用Process.WaitForExit方法。

指示 Process 组件无限期地等待关联的进程退出。

还要检查Process.Exited事件。

在进程退出时发生。

Process process = Process.Start(@"E:\test\test.ppsx");
process.WaitForExit();
于 2013-05-02T07:39:41.137 回答
1

利用Process.WaitForExit()

class Program
{
    static void Main(string[] args)
    {
        Task.Run(() =>
        {
            Process.Start(@"c:\temp\presentation1.pptx").WaitForExit();
        }).ContinueWith(o => 
        {
            Process.Start(@"c:\temp\presentation2.pptx").WaitForExit();
        });
        Console.ReadKey();
    }       
}
于 2013-05-02T07:40:07.233 回答
0

您应该从 E 盘中的 test 目录中获取所有 ppsx 文件,并根据您的要求在 ppsx 文件数组上进行处理。

 string[] files = Directory.GetFiles("your path");

循环遍历数组并将每个文件路径传递给 Process 构造函数,正如 lexeRoy 所说,您可以 WaitForExit。

于 2013-05-02T07:37:57.313 回答