How to enumerate the installed StoreApps and their ID in Windows 8 and 10

后端 未结 2 1898
暗喜
暗喜 2021-01-15 05:51

What I want to get is the AppUserModelId of all installed StoreApp applications, so that I can pass it to IApplicationActivationManager->ActivateApplication.

2条回答
  •  感动是毒
    2021-01-15 06:07

    Use PackageManager APIs to enumerate packages and GetPackageApplicationIds to enumerate applications in a package e.g. pseudo-code

    FOREACH p IN PackageManager.FindPackagesForUserWithPackageTypes(null,
    PackageType_Main|PackageType_Optional)
    {
        PACKAGE_INFO_REFERENCE pir
        OpenPackageInfoByFullName(p.Id.FullName, 0, &pir)
        UINT32 n=0
        GetPackageApplicationIds(pir, &n, null, null)
        BYTE* buffer = new BYTE[n]
        UINT32 count=0
        GetPackageApplicationIds(pir, &n, buffer, &count)
        ClosePackageInfo(pir)
        PCWSTR * applicationUserModelIds = reinterpret_cast(buffer);
        FOR (i=0; i

    See GetPackageApplicationIds() on MSDN for more details including working sample code https://msdn.microsoft.com/en-us/library/windows/desktop/dn270603(v=vs.85).aspx

提交回复
热议问题