C# 如何获得关闭通过进程调用的应用程序的通知?
我想在计算器关闭时得到通知。以下代码不起作用;即使我没有关闭计算器,C# 如何获得关闭通过进程调用的应用程序的通知?,c#,C#,我想在计算器关闭时得到通知。以下代码不起作用;即使我没有关闭计算器,退出也会出现。我必须写什么修改 static void Main() { using (Process p = new Process()) { p.StartInfo.FileName = "calc.exe"; p.EnableRaisingEvents = true; p.Exited += (x, y) => Console.WriteLine("Ex
退出
也会出现。我必须写什么修改
static void Main()
{
using (Process p = new Process())
{
p.StartInfo.FileName = "calc.exe";
p.EnableRaisingEvents = true;
p.Exited += (x, y) => Console.WriteLine("Exited");
p.Start();
p.WaitForExit();
}
}
您使用的是Winsows 10,calculator是那里的UWP应用程序,通常应以应用程序url启动: 我敢打赌,微软的编码人员创建了kludge,允许以与以前Windows版本相同的方式运行UWP calculator,以保持向后兼容性,因此,很可能某些代理进程运行UWP calculator并立即结束,因此您会出现意外行为
另外,
p.WaitForExit()
用作同步,而p.Exited
用作等待进程结束的异步方式,通常它们不一起使用,您应该选择一种。不确定这是否与“calc.exe”有关,或者可能是因为您已经在运行它。运行“notepad.exe”时是否得到相同的结果?@AnuViswan:是的,使用notepad时得到相同的结果。有趣的是,对我来说,它对notepad有效,而对calc无效。exe@ArtificialStupidity您使用的是什么Windows版本?10和calculator是UWP应用程序吗?@AnuViswan+1在我的Win10 x64 Prot上相同mspaint.ext
,是UWP吗?@artificialstupitymspaint.exe
对我来说工作正常,但是退出
事件被触发了两次。。。正如我们所知,它最初不是一个UWP应用程序,但您也可以阅读以下内容:我们只能猜测mincermspaint
将迁移到store。。。它可能是UWP容器中的遗留应用程序,例如lol。。。我无法解释微软的魔力,但我认为那里发生了一些不可思议的事情:)