【问题标题】:Determine if C++ application is running as a UWP app in Desktop Bridge (Project Centennial)确定 C++ 应用程序是否在桌面桥(Project Centennial)中作为 UWP 应用程序运行
【发布时间】:2017-01-29 07:06:27
【问题描述】:

我已将 C++/Win32 应用程序打包为 appx,它运行正常。但是,由于某些路径不可用,我必须以某种方式确定应用程序是否作为打包的 UWP 应用程序运行并进行调整。

是否有一个简单的运行时检查可以确定您是否作为打包的 UWP 应用程序运行?

【问题讨论】:

标签: c++ winapi uwp desktop-bridge


【解决方案1】:

是否可以通过简单的运行时检查来确定您是否作为打包的 UWP 应用程序运行?

是的,您可以通过GetPackageFamilyName function检查包裹身份

如果没有打包返回值APPMODEL_ERROR_NO_PACKAGE

【讨论】:

  • 这是正确答案。在 UWP 下运行时,GetPackageFamilyName 将返回 ERROR_SUCCESS,而在 Win32 下,它将返回 APPMODEL_ERROR_NO_PACKAGE,如果您使用的是旧版 SDK,则它是 15700(十进制)。
  • @c00000fd 感谢您的确认:)
  • 如何检查相同的,但对于 C#?
  • GetPackageFullName 比 GetPackageFamilyName 效率略高,但 GetCurrentPackageFullName 是当前进程的最佳答案 - 在功能上等效但比当前进程的 GetPackageAnything 更有效
猜你喜欢
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多