如何知道Windows应用商店应用已在C#或VB中终止?

问题描述 投票:-1回答:1

我知道Windows应用商店应用程序是以隔离模式(沙箱)执行的。因此,我通过使用IApplicationActivationManager.ActivateForFile启动应用程序(例如Microsoft照片),显示提供的图像,并且函数的返回值为我提供了进程ID(例如6544用于名为'ApplicationFrameHost'的进程和主窗口标题'Photos'但是当我向相应进程的.Exited()事件注册一个处理程序时,我关闭应用程序时不会得到通知(与像notepad.exe这样的Win32 / 64应用程序不同)。

令人不快的是,我也会收到相同的进程ID,以便显示下一个图像 - 这两个图像现在都由同一个进程保存。并且随后显示的所有图像也会返回相同的进程ID ...并且我的.Exited-Handler仍然没有被调用,以防万一我只关闭现在几个正在运行的Photo-Apps中的一个,也不是最后我关闭了所有这些。

由于我无法在关闭我的图像的过程中发出关于该过程的通知,因此我想查看它是否仍在显示。我调查过程的所有属性,包括ProcessThreadCollectionProcessStartInfo,但没有找到任何可以识别我显示的图像。甚至当我通过打开窗口循环调查MainWindowsTitles时(使用User32.EnumWindows()WindowsInterop.GetRootWindowsOfProcess(p.Id),这不会给我更多的横笛时间“照片”为fife显示图像 - 唉没有显示图像的文件名!

任何提示到处都会非常感激!

c# vb.net uwp windows-10-universal kill-process
1个回答
0
投票

您可以使用AppDiagnosticInfoWatcher监视应用程序的状态,并在更改时收到通知:

https://docs.microsoft.com/en-us/uwp/api/windows.system.appdiagnosticinfowatcher

© www.soinside.com 2019 - 2024. All rights reserved.