/build/static/layout/Breadcrumb_cap_w.png

Icon Table

I'm stuck using the basic functionality (relative to AdminStudio) of InstEd and am having trouble modifying an existing shortcut in a vendor MSI (inside an MST of course). When I modify the shortcut to install to a different location (all users desktop instead of user desktop), the icon breaks. If I look on MSDN at the Shortcut table, it tells me I need to point the Icon field to the external key from the Icon table. If I look at the details for the Icon table, it tells me I need to create a binary file which will hold the icons. If I try to modify or create a new binary in the _Streams table, it looks like I'm supposed to point to the actual file that holds the icons (the main.exe in this case). When I do this, it actually saves the new binary over the top of the main.exe file.

I think I've worked out all the relationships that I need to use (feel free to correct me if I'm wrong), but I'm at a loss on how to create the binary file (and what to do with it once I've created it).

TIA
Brett

0 Comments   [ + ] Show comments

Answers (6)

Posted by: anonymous_9363 12 years ago
Red Belt
2
Sorry, I should have clarified. Icons which are not contained in an EXE or DLL installed by the package are stored in the Binary table. The Icon table is used to contain icons for advertised shortcuts and OLE servers.
Posted by: AngelD 12 years ago
Red Belt
2
Yes Brett they will, however and if I recall correct;
If the icon is the same as in the shortcuts exe (target) then you could leave the icon table blank.
Posted by: anonymous_9363 12 years ago
Red Belt
1
Icons are stored in the Binary table, not the _Streams table.

Good work so far!
Posted by: brettski 12 years ago
Purple Belt
0
Thanks VBScab, I was hoping you'd take up the challenge of educating me :) . I thought one of the other post I saw here said that it could be in either _streams or binary table, but rereading it you're right, it's binary or icon tables. OK, so I've re-tried the icon table, but without luck and the binary table doesn't seem to hold any rows that seem to relate to the other shortcut icons.

In InstEd, I've gone into the Icon table. I click on the Data column for the row for the icon that used to work (not sure why it broke just because I change it's install location) and click on the "..." button to browse to the file that holds the icon files ... the application.exe. I can then click on the <- button to load the icons and save the MST. If I then run the installer, I don't get an icon. If instead I click the -> button to save the icons rather than loading it, InstEd over rights the selected file (the application.exe) changing the size to 40kB. Again, if I install it, I still don't get an icon.

So it seems like I'm looking at the correct locations; I'm guessing I'm just using InstEd incorrectly. Can you point me to what I'm doing wrong?

Thanks again for your help.
Brett
Posted by: brettski 12 years ago
Purple Belt
0
Just to confirm. If I have an icon contained in an EXE installed by the product but is used for a regular shortcut (not advertised), would they also go in the Icon table?
Posted by: brettski 12 years ago
Purple Belt
0
Thanks AngelD and VBScab for your help. I don't know that I could get an Advertised Shortcut Icon to work, but if I just Null the Icon table it works for what I need this time. For some reason it doesn't uninstall still (was hoping it was just because the icon was broken), but that's the next thing to chase down.

Thanks again for your help
Brett
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ