A new Flexera Community experience is coming on November 25th, click here for more information.

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

repackager doesn't capture desktop shortcut

CChong
By Level 11 Flexeran
Level 11 Flexeran
Hi All:

I'm a newbie to AdminStudio, so this is probably a simple question.

My problem is that I am trying to repackage the domino.doc client. Everything works fine, except that the repackager never picks up the desktop shortcut.

This shortcut isn't a normal one -- it's like IE or Outlook in that when you right click it, you get a menu for configuring domino.doc -- not the normal shortcut properties menu.

In addition, in a normal (non-repackaged) install, the icon doesn't show up on the desktop until after a reboot.

I diff'd the registry before and after the normal install, and it seems like a lot of changes are made under HKEY_LOCAL_MACHINE\SOFTWARE\Classes. I noticed that this was part of the global excludes in AdminStudio, so I removed that exclusion, but the repackager still never picks up changes under that key.

Any ideas?

Thanks,
-Graham
(8) Replies
Which method are you using to Repackage? If using snapshot, are you taking the final snapshot after the machine is rebooted?

Easiest way to fix this is to open the repackaged output in Developer and create a shortcut manually.

Regards
Rajesh Tammana
InstallShield Software Corporation.
CChong
By Level 11 Flexeran
Level 11 Flexeran
I tried using both snapshot and installation monitoring.

When doing a snapshot, AdminStudio automatically takes the "after" snapshot as soon as the install finishes -- how would I delay it to happen after a reboot?

In any case, shouldn't the snapshot capture the changes which will produce the icon after a reboot?

Thanks for your help!
-Graham
Try multiple snapshot approach.
1 Take the initial snapshot
2 Install your setup.
3 Reboot.
4 Configure any shortcuts or system changes you want repackager to capture.
5 Launch Repackager and do post analysis.

Build your MSI and see if the install gives you the shortcut or not.
CChong
By Level 11 Flexeran
Level 11 Flexeran
By analyzing the Internet Explorer icon that is created by Windows, I found that it is located in HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}

So, if you would like to create an icon similar to this one, you would have to do the following :

1- Create an entry in HKCR\CLSID\{ID} that contains everything your icon need (Command Line, Icon, etc.) You can take a look at the Internet Explorer icon properties in the registry for example.

2- Add the key in HKCU to add a "system" icon to your desktop

After testing this, you can cerate a component in Developper and add the registry keys you need to create your icon.

I haven't test it myself so give me some feedback.
CChong
By Level 11 Flexeran
Level 11 Flexeran
Well, I took a look at a machine that has the icon in question, and it doesn't have a corresponding entry in the registry key you mentioned... So it might work, but I'd rather figure out how the original installation does it.

Is there a name for this type of icon (Outlook creates them, as does Lotus Notes)? How do they get created in the first place?

Thanks for your suggestion!
-Graham
CChong
By Level 11 Flexeran
Level 11 Flexeran
Originally posted by RajeshTammana
Which method are you using to Repackage? If using snapshot, are you taking the final snapshot after the machine is rebooted?

Easiest way to fix this is to open the repackaged output in Developer and create a shortcut manually.



I made some progress on this, although the app still doesn't work.

I've tried both installation monitoring and snapshots (both with and without a reboot before taking the second snapshot) -- the results are always the same.

By diffing the registry before and after, I found that entries in hkey_classes_root\CLSID were not getting captured due their being excluded by default.

Now the installation will create a folder icon on the desktop which has no name and does nothing when clicked on.

I'm not sure where to go from here... Any ideas?

Thanks,
-Graham
CChong
By Level 11 Flexeran
Level 11 Flexeran
I managed to test it and to make it works. Here's how I did it :

To test my icon, I used an ID similar to the one used by the Recycle Bin. So, no matter what is your Class ID, it should works.
In my example, I'll create an icon for Notepad on the desktop and having a behaviour similar to Internet Explorer's icon.

First, I've created the following structure in the HKCR\CLSID folder
(For clarity's sake, I'll just use the word CLSID instead of the number itself)
HKCR\CLSID
---> {CLSID}
(default) = "Notepad" (REG_SZ)
------> DefaultIcon
(default)="c:\winnt\Notepad.exe,0" (REG_SZ)
------> InProcServer32
(default)="notepad.exe" (REG_SZ)
ThreadingModel="Apartment" (REG_SZ)
------> shell
(default)="Open" (REG_SZ)
--------->Open
(default)="Run" (REG_SZ)
------------>Command
(default)="c:\winnt\notepad.exe" (REG_SZ)
------> ShellFolder
Attributes = 40 01 00 20 (REG_BINARY)

HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace
---> {CLSID}
(default) = "Notepad" (REG_SZ)

Now, your icon should work.
Notice that the default value for the shell key is the same as the folder underneath it.
As for icons, I don't know how Windows manages a file containing multiple icons. I think that it is binary but it won't works in some case. (Ex: Empty Recycle Bin icon uses number 31 while Full Recycle Bin icon uses number 32 and they're not next to each other in the shell32.dll file. Internet Explorer uses number -190 !!!) So, if your file contains too many icons, find a software to extract the icon you need. It will be much easier that way. You'll just have to enter 0 at the end of the default value for the DefaultIcon key.

Hope that this helps and that it will work for you.
CChong
By Level 11 Flexeran
Level 11 Flexeran
Originally posted by DLapalme
I managed to test it and to make it works. Here's how I did it :

To test my icon, I used an ID similar to the one used by the Recycle Bin. So, no matter what is your Class ID, it should works.
In my example, I'll create an icon for Notepad on the desktop and having a behaviour similar to Internet Explorer's icon.


Thanks for all your help!

Unfortunately, domino.doc appears to be more complicated than simply launching an executable -- none of the executables that come with the app actually produce what you see when you click on their desktop icon. Their icon launches a specialized explorer window which connects to their document library.... I don't know what the target of the icon should be, nor what (if any) arguments need to be passed to it.

I appreciate your suggestions!

Thanks,
-Graham