Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在windows ARP中控制已安装的应用程序(添加或删除程序)_Windows_Windows Installer - Fatal编程技术网

如何在windows ARP中控制已安装的应用程序(添加或删除程序)

如何在windows ARP中控制已安装的应用程序(添加或删除程序),windows,windows-installer,Windows,Windows Installer,我看到了一个exe安装包。它包含几个.MSI安装包。安装包所做的是安装它拥有的每个msi 如果我双击exe安装该产品,该产品将显示在ARP中。 但是,如果我在这个exe包中安装了一个特定的msi,msi的产品名称将出现在ARP中 假设我们讨论的是产品p,p包含3个组件:A、B、C。p是exe,A、B、C是msi。如果我安装了,将在ARP中显示。但是如果我安装了P,P将出现在ARP中,但是A,B,C都不会出现在ARP中 我看到了这根线 我检查了HKEY\U LOCAL\U MACHINE\SOFT

我看到了一个exe安装包。它包含几个.MSI安装包。安装包所做的是安装它拥有的每个msi

如果我双击exe安装该产品,该产品将显示在ARP中。 但是,如果我在这个exe包中安装了一个特定的msi,msi的产品名称将出现在ARP中

假设我们讨论的是产品p,p包含3个组件:A、B、C。p是exe,A、B、C是msi。如果我安装了,将在ARP中显示。但是如果我安装了P,P将出现在ARP中,但是A,B,C都不会出现在ARP中

我看到了这根线

我检查了HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall密钥,我可以看到A、B、C都在它们的产品代码下。我还看到P也在那里,它没有产品代码

所以我很困惑他们是如何控制ARP中的显示或隐藏以及注册表的用途


谢谢

控制MSI是否在控制面板中列出的最简单方法是设置

在为A、B和C启动MSI时,p包很可能会在命令行中看到此属性。

很抱歉,wesley,但在您链接的文章中,这是错误的。这不是在AddRemoveProgramms中隐藏包的正确方法。这可能会损坏msi的功能。这也是不必要的困难

正确的方法就像波格丹·米特拉奇。这里有一个简短的教程

  • 获取MSI编辑器,如Orca或InstEd()
  • 打开MSI并搜索属性
  • 在属性表中创建具有以下值的新条目: 属性:ARPSYSTEMCOMPONENT 值:1
  • 保存MSI。现在程序在ARP中不应该可见 如msdn链接的链接所示,您可以在调用msi期间使用ARPSYSTEMCOMPONENT。您不必编辑/更改MSI。您可以通过以下方式调用MSI

    msiexec /i "yourmsi.msi" ARPSYSTEMCOMPONENT=1
    

    好的,我找到一个网页,它部分地解释了我的问题。非常感谢。但是exe安装文件P如何在ARP中显示它的ELT呢?不是msi,你确定吗?它可能是一个引导程序(MSI上的EXE包装器),只启动MSI。如果你可以发布这个软件包的下载链接,我可以看一下,然后告诉你是不是这样。看。是的,这是一个引导程序。它将提取到%TEMP%,您可以看到MSI。