Old 23rd June 2014, 16:59   #1
johnah
Junior Member
 
Join Date: Jun 2014
Posts: 3
Uninstall shortcut removed in Windows 8.1

Hi all,

I am new in the forum, but a NSIS user since 6 years now.

I encountered many problems in the past, but thanks to this excellent forum I had always found an answer without the need of publishing new threads .

But know I got a problem and I was not able to found a solution searching the forum, so I decided to do my first post, I hope anybody out there knows what to do. Here is the issue:

I got the request to support Windows 8/8.1 in our new application installers. As the Start menu concept changed in these new Windows versions our installers evolved as well to follow.

With our installers I always created in the programs menu a program group with four shortcuts on it:

ProgramName
- ApplicationName.lnk
- Website.url
- LogFiles.dir
- Uninstall.lnk

As you surely know already, when a new program is installed under Windows 8.1 the Program menu icons are created in the so called "Apps view". In my case I got a group with the ProgramName as a title and inside I got only the first three shortcuts and not the Uninstall.lnk shortcut. Well, to be exact, it appears there for a fraction of second and then it is magically removed.

Searching the Internet I found that Windows 8.1 decides to remove Uninstall shortcuts from the Apps view. They want the user to right-click on the application icon and then select Uninstall from the context menu, just to open the "Uninstall or change a program" window from where the user has to search for the application to finally remove it. All that instead of just allowing the user to click on the Uninstall shortcut directly. Why Microsoft decided this is a mystery to me and I could not find a reason why they do this.

So, first question: Does anybody knows why Microsoft decided to do this?

Second question: Does anybody knows how to go around this? How to successfully show the Uninstall shortcut in the App view and not allow Windows 8.1 to hid it?

Thanks a lot in advance!
Johnah
johnah is offline   Reply With Quote
Old 23rd June 2014, 19:00   #2
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,356
You are not really supposed to create uninstall/readme/website shortcuts in the Start Menu, the MS guidelines have said this since at least 2000. If the thing you are installing only has 1 real application then you should create a shortcut to that directly under $smprograms and not inside a folder/group...

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 24th June 2014, 07:57   #3
johnah
Junior Member
 
Join Date: Jun 2014
Posts: 3
Thanks Anders,

But as you said, those are only guidelines, not rules.

The true here is that the users are used to find the uninstaller and website links in the programs menu. At the start of our development we had only the application shortcut there, but we got many many emails asking how they could remove the product. Apparently the users do not know the existence, or how to arrive to the add/remove programs feature (and we deploy our product to 33 countries and for specialized technicians which have knowledge on computer use). After speaking with our users we defined that the best would be to add uninstall and website shortcuts directly in the programs menu and it has worked flawlessly ... until windows 8.

So, I repeat my main question again, is there a way (maybe a registry tweak) to show the Uninstall shortcut in the App view? Has somebody done this?
johnah is offline   Reply With Quote
Old 24th June 2014, 11:42   #4
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,356
I can almost guarantee that there is no registry tweak and even if there is, those types of system settings should not be changed by a installer.

I assume Windows is monitoring the Start menu folder and your options are probably limited to hiding or protecting the shortcut.

Have you tried making the .lnk read-only?

While you could probably change the file ACL/security this would also make it hard for your uninstaller and the real user to delete it.

My final suggestion is a ugly hack; assuming you are compiling a Unicode installer you could use the new ${U+xxx} NSIS 3 syntax and create a filename that looks like "Uninstall" but is really using a different character for the "n" or "i" etc ( http://en.wikipedia.org/wiki/%D0%86 ).

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 26th June 2014, 07:28   #5
johnah
Junior Member
 
Join Date: Jun 2014
Posts: 3
Thanks Anders,

I tried making it read-only and also naming it differently ... no success. Windows 8 is smart enough to realize it is an uninstaller.

Well, I guess is time to change our company policy about this. We will see what happens.

Thanks a lot for your time Anders!
johnah is offline   Reply With Quote
Old 26th June 2014, 16:04   #6
Aminifu
Forum King
 
Aminifu's Avatar
 
Join Date: Aug 2011
Location: Phoenix, AZ
Posts: 4,779
Many, if not most, uninstallers that come with apps leave bits and pieces behind (especially in the registry). Windows 8 is trying to do a better job and is directing users to use the uninstaller in the control panel. It's similar to some 3rd party uninstallers that use the app's uninstaller as a first pass, then tries to clean up anything left behind.

Windows 8 is also directing that it's format association utility (Default Programs) be used to associate file extensions with apps, instead of letting the apps do so.

Microsoft is trying to gain some control over some things that lead to the OS becoming unstable over time.

Winamp Pro v5.666.3516 fully-patched - Quinto Black CT v3.1 skin
Windows 10 Home 64-bit v20H2 desktop - Logitech Z906 5.1 speaker system
Aminifu is offline   Reply With Quote
Old 26th June 2014, 17:47   #7
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,356
Quote:
Originally Posted by Aminifu View Post
Many, if not most, uninstallers that come with apps leave bits and pieces behind (especially in the registry). Windows 8 is trying to do a better job and is directing users to use the uninstaller in the control panel. It's similar to some 3rd party uninstallers that use the app's uninstaller as a first pass, then tries to clean up anything left behind.
The control panel applet just runs the applications normal uninstaller, Windows itself has no application uninstall capability. The only thing it will cleanup is the applications registry uninstall entry.

Quote:
Originally Posted by Aminifu View Post
Windows 8 is also directing that it's format association utility (Default Programs) be used to associate file extensions with apps, instead of letting the apps do so.
This is because media players and browsers would fight over who controls the default verb for their file extensions. Windows now encrypts this information so apps can no longer change the defaults for static verbs.

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Tags
windows 8.1

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump