我的第一个想法是使用GetPackageFamilyName()
并寻找ERROR_SUCCESS
vs APPMODEL_ERROR_NO_PACKAGE
.
但是,我需要支持 Windows 7,这使得GetPackageFamilyName()
无法使用。
有没有合适的替代方法?也许注册表中有什么东西?
Use GetProcAddress()
加载GetPackageFamilyName()
在运行时动态地,例如:
typedef LONG WINAPI (*LPFN_GPFN)(HANDLE, UINT32*, PWSTR);
bool bIsUWP = false;
LPFN_GPFN lpGetPackageFamilyName = (LPFN_GPFN) GetProcAddress(GetModuleHandle(TEXT("kernel32")), "GetPackageFamilyName");
if (lpGetPackageFamilyName)
{
UINT32 size = 0;
if (lpGetPackageFamilyName(GetCurrentProcess(), &size, NULL) == ERROR_INSUFFICIENT_BUFFER)
bIsUWP = true;
}
if (bIsUWP)
{
//...
}
else
{
//...
}
或者,考虑使用其中之一GetCurentPackage...()
功能 (GetCurrentPackageFamilyName(), GetCurrentPackageId(), GetCurrentPackageInfo()等)而不是使用GetPackageFamilyName()
with a HANDLE
到调用过程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)