我在为我开发的应用程序创建卸载程序注册表项时尝试使用EstimatedSize值,遗憾的是我指定的值未显示在程序条目旁边的“添加/删除程序”列表中。我试图找到使用此值的正确程序,但无济于事。有人在这个问题上有经验吗?感谢您的帮助。
Divo 让我走上正轨,所以我想我会逐步说明如何正确显示EstimatedSize值。
答案 0 :(得分:3)
在Windows7上编写任意值对我来说很好。
我使用的NSIS不会自动填充此值 或写这个键或在这里做任何神奇的事情。 但是你可以自己创建注册表项, 并把自己想要的东西放进去, 使用普通的脚本命令。
这是NSIS * .nsi脚本,抱歉,但只有3个活动行。 我不认为你必须知道NSIS才能看到我 只是随意创建密钥并写出我选择的值 进去。我也可以告诉你,当我把坏的价值观 在那里,它确实出现在添加/删除程序完全一样糟糕 就像我写的那样。 (我假设该值应该以字节为单位 起初,所以,我的3.2 MB应用程序显示为3.2 GB)
摘自foo.nsi:
[...] ; ARP = just convenience variable to hold the long reg key path !define ARP "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" ; include a function library that includes a file/directory size reporting command !include "FileFunc.nsh" ; for ${GetSize} for EstimatedSize registry entry [...] Section "Install" ; [...copy all files here, before GetSize...] ; get cumulative size of all files in and under install dir ; report the total in KB (decimal) ; place the answer into $0 ($1 and $2 get other info we don't care about) ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 ; Convert the decimal KB value in $0 to DWORD ; put it right back into $0 IntFmt $0 "0x%08X" $0 ; Create/Write the reg key with the dword value WriteRegDWORD HKLM "${ARP}" "EstimatedSize" "$0" [...write the other keys in the same reg path...] SectionEnd [...]
答案 1 :(得分:2)
我发现在
下更改了EstimatedSize的值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{my-guid-value}
没有任何直接影响。该值缓存在以下密钥中:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\{my-guid-value}\SlowInfoCache
仅在我删除(重命名)此 SlowInfoCache 值后,更新后的尺寸才会显示在添加或删除程序下。
此致 DIVO
答案 2 :(得分:1)
虽然这个主题已经很老了,但是在寻找如何在Windows XP的“添加/删除程序”窗口中显示应用程序大小时,我一直在搜索这里,所以我发布了我发现的内容以防其他人发现它有用:
只需转到您的应用程序文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\\{app_name}
并添加一个名为“InstallLocation”的字母数字值,其值为应用程序的主文件夹。
如果您是手动操作(而不是在安装过程中),为了使其正常工作,您必须删除文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\\{app_name}
因为它缓存了卸载信息。
答案 3 :(得分:0)
您使用的是哪种安装程序? MSI?
Windows Installer将在安装期间确定并设置此值(请参阅MSDN:Uninstall Registry Key)
我认为无法手动设置此值。幕后(http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx)
有很多事情发生(一些真正“蹩脚”的东西)问候,divo