我正在尝试将“添加或删除程序”中的图标设置为与我的应用程序图标相同。 我的图标存储在解决方案的应用程序文件夹中。 我在SourceForge上阅读到,您必须编辑ARPPRODUCTICON属性。 在Windows Forms中,我应该如何/在哪里执行此操作?
我正在尝试将“添加或删除程序”中的图标设置为与我的应用程序图标相同。 我的图标存储在解决方案的应用程序文件夹中。 我在SourceForge上阅读到,您必须编辑ARPPRODUCTICON属性。 在Windows Forms中,我应该如何/在哪里执行此操作?
我找到了一种非常简单的解决方法。在您的部署项目属性下,点击“添加或删除程序”,然后浏览您的文件。我建议将您的应用程序图标放入您的应用程序文件夹中。
您可以在以下位置手动更改这些详细信息:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
一些有效的键值:
如果 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
键的值。这将更改控制面板中添加或删除程序卸载程序图标。Windows安装程序支持属性,通过该属性可以添加图标ARPPRODUCTICON
。要设置此属性,我们需要使用Icon
元素在您的安装程序中添加图标。
<Icon Id="icon.ico" SourceFile="MySourceFiles\icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
这将在控制面板中添加图标。
简单方法- 在第一次启动时运行以下代码 (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
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
}
}
是的,您可以通过以下代码实现:
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)