如何更改“添加或删除程序”中的图标
我正在尝试将“ 添加或删除程序”中的图标设置为与我的应用程序图标相同。 我的图标存储在我的解决方案的应用程序文件夹中。 我在SourceForge上读到你必须编辑ARPPRODUCTICON属性。 我在Windows窗体中如何/在何处执行此操作?
我找到了一个非常简单的解决方 在部署项目的属性下,单击“AddRemoveProgram”并浏览您的文件。 我建议您在Application文件夹中删除应用程序的图标。
您可以手动更改这些详细信息
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
一些有效的可接受键值:
- InstallLocation(string) – 安装目录($ INSTDIR)
- DisplayIcon(string) – 将显示在应用程序名称旁边的图标的路径,文件名和索引
- 发布者(字符串) – (发布者)的公司名称
- ModifyPath(string) – 应用程序修改程序的路径和文件名
- InstallSource(string) – 安装应用程序的位置
- ProductID(字符串) – 应用程序的产品ID
- 自述文件(字符串) – 自述文件信息的路径(文件或URL)
- RegOwner(字符串) – 申请的注册所有者
- RegCompany(字符串) – 申请的注册公司
- HelpLink(字符串) – 链接到支持网站
- HelpTelephone(字符串) – 支持的电话号码
- URLUpdateInfo(string) – 链接到网站以获取应用程序更新
- URLInfoAbout(string) – 链接到应用程序主页
- DisplayVersion(string) – 应用程序的显示版本
- VersionMajor(DWORD) – 应用程序的主要版本号
- VersionMinor(DWORD) – 应用程序的次要版本号
- NoModify(DWORD) – 如果卸载程序无法修改已安装的应用程序,则为1
- NoRepair(DWORD) – 如果卸载程序无法修复安装,则为1
- SystemComponent(DWORD) – 设置1以防止在“控制面板”的“添加/删除程序”的“程序列表”中显示应用程序。
- EstimatedSize(DWORD) – 已安装文件的大小(以KB为单位)
- 注释(字符串) – 描述安装程序包的注释
如果NoModify和NoRepair都设置为1,则按钮显示“删除”而不是“修改/删除”。
例如:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver] "DisplayName"="WinRAR 4.20 (64-bit)" "DisplayVersion"="4.20.0" "VersionMajor"=dword:00000004 "VersionMinor"=dword:00000014 "UninstallString"="C:\\Program Files\\WinRAR\\uninstall.exe" "DisplayIcon"="C:\\Program Files\\WinRAR\\WinRAR.exe" "InstallLocation"="C:\\Program Files\\WinRAR\\" "NoModify"=dword:00000001 "NoRepair"=dword:00000001 "Language"=dword:00000000 "Publisher"="win.rar GmbH"
您可以更改(或创建它,如果它不存在) DisplayIcon
键的值。 这将更改控制面板中“ 添加或删除程序”中的卸载程序图标。
是的,您可以通过以下代码执行此操作:
string Install_Reg_Loc = @"Software\Microsoft\Windows\CurrentVersion\Uninstall"; string displayIcon = @"C:\MorganTech\setup-icon.ico"; RegistryKey hKey = (Registry.LocalMachine).OpenSubKey(Install_Reg_Loc, true); RegistryKey appKey = hKey.OpenSubKey(productName); appKey.SetValue("DisplayIcon", (object)displayicon, RegistryValueKind.String)
首次启动的简单方法是运行此代码(vb .net):
Dim myUninstallKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall") dim iconSourcePath As String = "c:\myprogram\myprogram.exe,0" Dim mySubKeyNames As String() = myUninstallKey.GetSubKeyNames() For i As Integer = 0 To mySubKeyNames.Length - 1 Dim myKey As RegistryKey = myUninstallKey.OpenSubKey(mySubKeyNames(i), True) Dim myValue As Object = myKey.GetValue("DisplayName") If myValue IsNot Nothing AndAlso myValue.ToString() = "YourProgaram" Then myKey.SetValue("DisplayIcon", iconSourcePath) Exit For End If Next
或c#
RegistryKey myUninstallKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall"); string iconSourcePath = "c:\myprogram\myprogram.exe,0"; string[] mySubKeyNames = myUninstallKey.GetSubKeyNames(); for (int i = 0; i <= mySubKeyNames.Length - 1; i++) { RegistryKey myKey = myUninstallKey.OpenSubKey(mySubKeyNames(i), true); object myValue = myKey.GetValue("DisplayName"); if (myValue != null && myValue.ToString() == "YourProgaram") { myKey.SetValue("DisplayIcon", iconSourcePath); break; // TODO: might not be correct. Was : Exit For } }
Windows安装程序支持可以添加Icon ARPPRODUCTICON
。 要设置此属性,我们需要使用Icon
元素在安装程序中添加图标。
这将在控制面板中添加图标。
在Visual Studio 2017社区版中:
选择安装程序项目并按F4(这次鼠标单击没有帮助,但我发誓我之前通过其他方式获得了它。)