Winapi 获取Windows 8/8.1上Metro(现代UI)应用程序的路径

Winapi 获取Windows 8/8.1上Metro(现代UI)应用程序的路径,winapi,windows-runtime,microsoft-metro,Winapi,Windows Runtime,Microsoft Metro,如何使用WINAPI在Windows8和Windows8.1上获取前台metro应用程序的路径 例如,如果前台应用程序为“Weather”,则我要查找的应用程序特定路径为: C:\Program Files\WindowsApps\Microsoft.BingWeather\u 2.0.0.310\u x64\u\u 8wekyb3d8bbwe 如果在应用程序上单击鼠标右键“属性”,则此信息将显示在任务管理器中。不过,我也希望使用WINAPI以编程方式检索它 我尝试使用GetForeground

如何使用WINAPI在Windows8和Windows8.1上获取前台metro应用程序的路径

例如,如果前台应用程序为“Weather”,则我要查找的应用程序特定路径为:

C:\Program Files\WindowsApps\Microsoft.BingWeather\u 2.0.0.310\u x64\u\u 8wekyb3d8bbwe

如果在应用程序上单击鼠标右键“属性”,则此信息将显示在任务管理器中。不过,我也希望使用WINAPI以编程方式检索它

我尝试使用
GetForegroundWindow
GetWindowThreadProcessId
QueryFullProcessImageName
,但这只返回WWAHost容器进程的路径(“C:\Windows\System32\WWAHost.exe”),而不是上述特定于应用程序的路径


Windows 10 metro应用程序也在容器中运行,但其中一个子HWND属于特定于应用程序的进程。通过搜索此HWND,我能够在Windows 10上获得特定于应用程序的路径。然而,在Windows 8/8.1上只有3个HWND,它们都属于WWAHost容器进程,所以这个技巧不起作用。

WinRT和Metro(这应该是现代UI)是不同的系统。桌面应用程序也可以使用Windows运行时。请更新问题标题以减少混淆。避免问XY问题,解释为什么知道路径对您很重要。我偶然发现了一个相关问题的答案。我还没有机会测试它,但它看起来可以满足我的要求。