cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rajm12
Level 2

Display icon for Add/Remove program in Installshield Multiplatform 11.5

I am facing an issue with installable created using Installshield Multiplatform 11.5 for Windows. The add/remove program corresponding to the installed version of the product picks up an icon from the installed folder which is not the correct one.

Is there any way to configure an icon for Add/Remove programs? In registry, for many other products, there is property called as DisplayIcon. If the DisplayIcon value is set for the product, it shows correct icon in Windows Add/Remove program. Is there any way to that in Installshield 11.5?

Thanks in advance.
Labels (1)
0 Kudos
(6) Replies
shankrupa
Level 3

You can set the customized Icon for your product in ADD/Remove Programs by setting DisplayIcon key in registry for your product,

I think your are already aware of that, by set the customized display icon we need to create one .reg file with following contents

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Your_product]
"DisplayIcon"="icon file location"
replace all \ with \\

then exceucte this file after install action in ISMP

you need to execute this file using following command
regedit.exe /S your_registry_file

Hope this will help you,

Shankar
0 Kudos
Bohdan
Level 3

Is there some other way to configure icon displayed in Add/Remove programs menu except modifying win registry? Actually, modifiying the regisrty isn't the appropriate behavior for my installer. Maybe there is some possibility to configure displayed icon in InstallShield IDE?
0 Kudos
drostowsky
Level 5

Is there some other way to configure icon displayed in Add/Remove programs menu except modifying win registry?

None that Ive seen. Ive struggled with this issue as well, and just bit the bullet with the Windows Registry Update bean. One thing you need to be cautious of that I found is that your user needs to have admin privileges on the machine when installing, or this bean will explode, throw exceptions, and the install will fail. I used the AdminCondition bean to check first if the user is admin before fiddling with the registry.

Best of luck
-Dave
0 Kudos
chyang
Level 2

I am new to InstallShield, not sure this answers your question.
After open the InstallShield project, on the left side, there is a folder named "Installation Information", (the first folder in my project) the first attribute is "General Information", click it. In the middle pane, click "General Information", there is a sub attribute called "Add or Remove programs", click it. on the right pane, the first row is "Display Icon", just input the icon file name, normally one of your exe files, then build.

Good luck and please let me if this solves your problem.

Charlie
0 Kudos
ast081
Level 3

Hello All

I am trying the same .

I am trying to
copy my my .reg file to $V(IS_DESTINATION) using copy file then
windows registry update using action called "Windows Registry Update"
giving the path as $V(IS_DESTINATION)/myreg file

my .reg has following content ;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\our_GUID
"Display Icon" = "$P(absoluteinstallLocation)/file.ico

I am using one execute process to execute process to execute my .reg file.

but at the end of installation it is asking me do you want update the registry if say yes or mo it will say it can not open my .reg file .

but the icon is not changed at the ARP still it is default one

If Any hints or sugesstion are appriciated ::confused:
0 Kudos
MEinstaller
Level 7

Instead of using a .reg file to update the registry write some Java code to do it. I have had success using java code to update the icon for add/remove programs .

public void onUpdateAddRemove(com.installshield.event.wizard.WizardActionContext arg0)
{
try {
String icon = arg0.resolveString("$PATH($P(absoluteInstallLocation)/junk1.ico)");
String installLocation = arg0.resolveString("$P(absoluteInstallLocation)");
installLocation = FileUtils.normalizeFileName(installLocation, '/');
// Product_bean is the Bean ID for the Product
// Installation Design -> Product Name -> Advanced -> Bean Id
String uid = arg0.resolveString("$P(bean5.key.UID)");
int hash = installLocation.hashCode();
String uidandhash = uid + hash;

arg0.getServices().getISDatabase().setVariableValue("ICON",icon );
arg0.getServices().getISDatabase().setVariableValue("HASHKEY",uidandhash);

ProductService ps = ( ProductService )arg0.getService( ProductService.NAME );
ps.setRetainedProductBeanProperty( ps.DEFAULT_PRODUCT_SOURCE, "bean5", "registryKey", uidandhash );


} catch(ServiceException se) {
arg0.logEvent(this,Log.ERROR, se.getMessage());
} catch(ISDatabaseException s) {
arg0.logEvent(this,Log.ERROR, s.getMessage());
}
}
0 Kudos