有什么方法可以重命名 Windows 7 控制面板中程序和功能部分中已安装的程序?
答案1
我将就此发表我的长文,虽然没有明确说明,但其中的信息是存在的。
这是我一直在写的一篇小文章,虽然它没有直接解决你的问题,但可能会有用。只要注意我提到的注册表项,你通常就可以删除它们,以及 C:\Program Files\Application 文件夹,以欺骗安装程序认为
您想要了解的有关 Windows 中的添加/删除程序的一切。您是否曾想过 Windows 如何呈现和使用添加/删除程序?或者您可能需要自己枚举这些值?以下是有关其工作原理、如何使用以及您可能会喜欢的一些巧妙技巧的一些有用信息。
您在添加和删除程序(已确认 XP、Vista、7)中看到的所有内容都作为子项写入注册表 **HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall**。
例如,我有一个 CutePDF Writer Installation 子项,其键和值如下:
现在,这里需要关注的是 UninstallString 值。当您在“添加/删除程序”中单击“卸载”时,它会调用此值并运行它。您可以手动执行相同操作,例如对于 CutePDF,如果您运行“C:\Program Files (x86)\Acro Software\CutePDF Writer\Setup64.exe /uninstall”从运行行或命令提示符,您将获得卸载程序。您还可以通过运行带有 /? 开关的命令来找到其他卸载选项,或者从 cmd 提示符运行以下命令:
Cd C:\Program Files (x86)\Acro Software\CutePDF Writer Setup64.exe /?
请注意,这是一个不好的例子,因为开关没有返回任何内容!但通常这会起作用,或者您可以通过这种方式手动调用卸载程序。现在,让我们看看卸载列表的一个可能问题,您将看到一些文件以这种格式命名:{AFF7153F-C4AA-4C48-AEE9-8611D276CE86}
这就是 MSI 安装程序将其名称写入注册表的方式,它不是写入 EXE 安装程序写入的友好名称,而是写入其 GUID。
这其实不是什么问题,只是读取密钥有点困难。有几种方法可以读取这些密钥。一种是值名称 DisplayName,其值将更友好,即(在本例中)Quest ActiveRoles Management Shell for Active Directory (x64)。
另一种方法是 Windows 将 GUID 的“压缩和散列”版本写入注册表的另一部分。
要对值进行哈希处理,请取 GUID {AFF7153F-C4AA-4C48-AEE9-8611D276CE86} 并反转每组十六进制值。AFF7153F 变为 F3517FFA,C4AA 变为 AA4C,并继续沿 GUID 向下移动,直到得到以下内容: {F3517FFA-C4AA-84C4-9EEA-68EC672D1168}
现在,删除 {、- 和 } 得到F3517FFAC4AA84C49EEA68EC672D1168 现在,您有了压缩和散列的 GUID,可以将其与另一个密钥进行比较。
您现在应该能够在注册表中的以下位置找到这个新的 GUID: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\产品
果然,她就在那里:
使用以下键:
再次,您可以在 ProductName 中查找应用程序的名称。
附加提示:您可以在开始搜索、运行行或命令提示符中输入 appwiz.cpl 来启动添加/删除程序。