![]() |
#1 |
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 |
![]() |
![]() |
![]() |
#2 |
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,332
|
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 |
![]() |
![]() |
![]() |
#3 |
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? |
![]() |
![]() |
![]() |
#4 |
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,332
|
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 |
![]() |
![]() |
![]() |
#5 |
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! |
![]() |
![]() |
![]() |
#6 |
Forum King
Join Date: Aug 2011
Location: Phoenix, AZ
Posts: 4,772
|
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. Windows 10 Home 64-bit v20H2 desktop - Logitech Z906 5.1 speaker system |
![]() |
![]() |
![]() |
#7 | |
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,332
|
Quote:
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 |
|
![]() |
![]() |
![]() |
|
Tags |
windows 8.1 |
Thread Tools | Search this Thread |
Display Modes | |
|
|