Page 1 of 1

uninstall start menu shortcut folder

Posted: Mon Feb 02, 2009 6:23 pm
by dawidp
Hi, I'm seeing some strange behavior during uninstall. The $SHORTCUTFOLDER$ is physically removed from the drive, but is still visible in the Start Menu. Logging out or changing Start Menu preferences removes it.

I was able to reproduce this with a new "web build" project, and calling "delete recursive" before apply uninstall did nothing to remedy this.

Does anyone have a good way to fix this? Many thanks in advance,
Dawid

Posted: Tue Feb 03, 2009 7:48 am
by MichaelNesmith
If its physically removed from the drive but Explorer is still showing it, it would appear to be an issue with Explorer.

Posted: Tue Feb 03, 2009 2:21 pm
by dawidp
Got it fixed. Looks like some problem with Windows Start menu not getting refreshed and caching that folder even though it was physically removed. Looks like adding an application and installer icon fixed it.

Dawid

Posted: Thu Feb 05, 2009 6:26 pm
by dawidp
Apparently still broken in some cases. It's a Windows bug and Microsoft has a workaround

http://support.microsoft.com/kb/q193293/

Dawid

Posted: Thu Feb 05, 2009 7:34 pm
by MichaelNesmith
You can also use Call DLL Function to call the PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0) API, in case that helps.

Posted: Thu Feb 05, 2009 9:53 pm
by dawidp
I figured that much, but it would help if you could tell me what types to use for each of the parameters.

Thanks
Dawid

Posted: Fri Feb 06, 2009 7:08 am
by MichaelNesmith
I can do better than that:

Code: Select all

~InstallAware Clipboard Data~
~Call DLL Function~
~{C8EBEF25-3C3A-4050-AFD8-33EC79036F40}~
~user32.dll,PostMessageA,bool,,"double word",65535,"double word",26,"double word",0,"double word",0,$~
~mIDEFunc.dll\\mEXEFunc.dll~

Posted: Tue Feb 10, 2009 12:06 pm
by dawidp
Thanks. I tried it, but it didn't work. Looks like instead I might need to call:

SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST, pidl, NULL);

But first I need to obtain a "pidl", which is the address of the Start Menu folder by calling:

SHGetSpecialFolderLocation( (HWND)NULL, CSIDL_STARTMENU, &pidl)))

Sounds like I need to write my own small app to do this. Is there an easier way to accomplish this within AI?

http://msdn.microsoft.com/en-us/library ... S.85).aspx

Dawid

Posted: Tue Feb 10, 2009 3:52 pm
by MichaelNesmith
This worked for me causing a refresh when I tried, I really do not know why it failed for you.