You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Win32 API检测应用是否从微软商店安装?

检测应用是否来自微软商店的Win32解决方案

方法1:使用Package Manager API(推荐)

微软商店安装的应用属于MSIX/APPX包,可通过Win32的Package Manager API直接查询包来源,这是最可靠的官方方案。

核心步骤:

  • 调用FindPackagesByPackageFamily或FindPackageForUser获取目标应用的包全名
  • 通过GetPackageOrigin判断包来源,当返回值为PACKAGE_ORIGIN_STORE(数值2)时,说明应用来自微软商店

C++示例代码:

#include <windows.h>
#include <appmodel.h>
#include <iostream>

#pragma comment(lib, "appmodel.lib")

bool IsAppFromMicrosoftStore(const wchar_t* packageFamilyName) {
    UINT32 packageCount = 0;
    UINT32 bufferSize = 0;
    // 先获取所需缓冲区大小
    LONG ret = FindPackagesByPackageFamily(packageFamilyName, &packageCount, nullptr, &bufferSize, nullptr);
    if (ret != ERROR_INSUFFICIENT_BUFFER) return false;

    PWSTR* packageFullNames = new PWSTR[packageCount];
    ret = FindPackagesByPackageFamily(packageFamilyName, &packageCount, packageFullNames, &bufferSize, nullptr);
    if (ret != ERROR_SUCCESS || packageCount == 0) {
        delete[] packageFullNames;
        return false;
    }

    PACKAGE_ORIGIN origin;
    ret = GetPackageOrigin(packageFullNames[0], &origin);
    delete[] packageFullNames;

    return origin == PACKAGE_ORIGIN_STORE;
}

int main() {
    // 替换为目标应用的Package Family Name(可通过任务管理器、快捷方式属性获取)
    const wchar_t* targetPFN = L"YourTargetAppPackageFamilyName";
    bool isStoreApp = IsAppFromMicrosoftStore(targetPFN);
    std::wcout << (isStoreApp ? L"应用来自微软商店" : L"应用为原生安装") << std::endl;
    return 0;
}

注意:该API仅支持Windows 10及以上系统,编译时需链接appmodel.lib。

方法2:注册表路径检测

微软商店应用的注册表配置集中在HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages下,每个子项对应一个MSIX包,包含来源标识。而原生安装应用的注册表项通常位于HKEY_LOCAL_MACHINE\Software或HKEY_CURRENT_USER\Software的常规路径。

可通过查询上述特定注册表路径是否存在目标应用的包项来判断,但该方法可靠性略低,因为注册表结构可能随系统版本调整。

方法3:安装目录特征判断

微软商店应用默认安装在受系统保护的C:\Program Files\WindowsApps目录,目录名称格式为包名_版本_架构_发布者ID;原生安装应用通常位于C:\Program Files或自定义路径。

若能获取应用的安装路径,可通过路径特征判断,但访问WindowsApps目录需要管理员权限或特殊系统权限,使用场景受限。


内容的提问来源于stack exchange,提问作者kishoredbn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:20:24