【问题标题】:Force one application to close when a different application has closed, then close itself [closed]当另一个应用程序关闭时强制一个应用程序关闭,然后自行关闭[关闭]
【发布时间】:2013-08-24 00:41:14
【问题描述】:

所以,我正在编写一个程序,这就是它的开始!

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Diagnostics.Process.Start(@"C:\\Windows\\ehome\\ehshell.exe");
            System.Diagnostics.Process.Start(@"E:\\Xpadder\\WMC.xpaddercontroller");
        }
    }
}

它所做的只是打开这两个文件。我希望它做的也是等到它检测到 ehshell.exe 何时停止运行,然后强制另一个程序(在本例中为 xpadder)也结束。

我已经查找了执行此操作的代码,但我不是最擅长 C#,也不是 100% 确定我在寻找什么!

【问题讨论】:

  • 将词C# monitor process 放入谷歌搜索引擎有多难?您将轻松获得超过 1000 万。结果..
  • @walther Google 不会为任何查询提供超过 1000 个结果。

标签: c#


【解决方案1】:
        var p1 = new ProcessStartInfo
        {
            FileName = atomicParsleyFile,
            Arguments = atomicParsleyCommands,
            WindowStyle = ProcessWindowStyle.Hidden,
            UseShellExecute = false,
            CreateNoWindow = true,
            RedirectStandardOutput = true
        };

        var proc = new Process { StartInfo = p1 };

        if (!proc.Start())
        {
            throw new ApplicationException("Starting atomic parsley failed!");
        }

                    /*Repeat above for second process here */

        Console.WriteLine(proc.StandardOutput.ReadToEnd());

        proc.WaitForExit(); //Run AtomicParsley and Wait for Exit
                    proc2.Kill();

【讨论】:

  • 它可能会更短,但我从前一段时间所做的事情中删除了它,并且我需要上述选项。如果您希望您的程序输出大量数据,您不应该重定向标准输出,或者以比我做的更小的块读取和输出。
【解决方案2】:
    static void Main(string[] args)
    {
        System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(@"C:\\Windows\\ehome\\ehshell.exe");
        System.Diagnostics.Process p2 = System.Diagnostics.Process.Start(@"E:\\Xpadder\\WMC.xpaddercontroller");
        p1.Exited += (s,e) => {
           if(!p2.HasExited) p2.Kill();
        };

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多