首页 > 解决方案 > 如何设置 Windows 桌面应用程序的 AppId(通过 InnoSetup)

问题描述

根据标题,如何设置本机 Windows 桌面应用程序的应用程序 ID?

有关应用程序 ID 的文档很少,我还没有找到任何有关设置它的信息。

有这个Microsoft Docs但这提到了它是什么以及如何使用 AppUserModelId

我正在使用 Inno Setup Compiler 为我的桌面应用程序创建安装程序,并且我已将标志AppId设置为由 Inno Setup Compiler 生成的 GUID。

AppId={{6BE5E5E6-68BF-4AF7-A9E5-FF919709E86C}

我的理解是 Inno Setup 将AppId在您运行安装程序时设置,但是当我运行此 PowerShell 代码段时,安装后我无法找到我的应用程序(此代码段显示 AppId 为IdentifyingNumber):

get-wmiobject Win32_Product -Filter "Name LIKE 'MyApp%'"

不过,在我的应用程序中,一切都按预期工作。它启动了一切,但我需要AppId设置,以便我的 toast 通知正常工作(通过 wxWidgets)。

编辑:

具有讽刺意味的是,我实际上追求的是AppUserModelId而不是AppId我的问题中甚至提到的。

第二次编辑:

我了解到这AppId是 Inno Setup 特定的事情,与 Windows 无关。正如我在之前的编辑中提到的,我真正在寻找的是AppUserModelId,我的问题变得更加清晰,这已被放入这个问题中。

不管我可以使用 Powershell 代码段查询某些应用程序并获得结果,我都觉得这很有趣,但是对于我的应用程序,我没有得到任何结果

标签: windowsinno-setup

解决方案


根据AppID它的文件指出:

AppId还确定了 Uninstall 注册表项的实际名称,Inno Setup 在末尾添加了“_is1”。(因此,如果 AppId 为“MyProgram”,则密钥将命名为“MyProgram_is1”。)

在您的情况下,注册表项将是:{6BE5E5E6-68BF-4AF7-A9E5-FF919709E86C}_is1

在我的计算机上,卸载注册表项在这里:

   HKEY_LOCAL_MACHINE\
             SOFTWARE\
          WOW6432Node\
            Microsoft\
              Windows\
        CurrentVersion\Uninstall\{...}_is1

它有两个注册表项,说明软件的位置:

  • InstallLocation
  • Inno Setup: App Path

但它似乎没有说明可执行文件的名称。但无论如何你都会知道的。


推荐阅读