7zFM cannot set file association
A free file archiver for extremely high compression
Brought to you by:
ipavlov
If some other program wrote the following registry keys (UserChoice):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.7z
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.001
7zFM is unable to overwrite file association to 7z / .001 extensions (even if run as Admin).
I suggest to remove the above keys when 7zFM feature is used to re-apply file association. This will fix the issue.
7-Zip 21.03 beta
If the UserChoice hash resolves to another program that is still installed then that choice should be respected. If the other program no longer exists I believe Windows will show the Open with dialog?
The FileExts key is of course a undocumented internal key used by shell32.
In my opinion, Windows should respect the last choice done by user.
However, for some reason, my OS installation had some bug preventing me from re-association .7z manually via "Open with" menu (7zFM item just didn't appear on manual exe selection via open dialog).
In such case I tried built-in feature in 7zFM menu. But, it also failed, as you can see.
I am absolutely convinced that 7zFM should erase any available assoc "overrides" (including undocumented) when user manually decided to force association via 7zFM menu. Otherwise, those menu item makes a little sense.
And, yeah, my OS is Win 7 x64.
Last edit: Alex Dragokas 2021-09-05
I don't really disagree with you and this might work for .7z but I doubt it works for .zip. The problem is that if the userchoice is gone, Windows tends to prefer the Microsoft built-in handlers as the best default (not sure if it applies to .zip but it does for .html and http:).
The recommendation (from Microsoft) for a long time has been to open the default programs applet when a program wants to set a default. It has been like this since Vista but it was really only enforced in Windows 10 (tightening down started in 8).
For Win 8/10 it is not enough. It requires one more little thing to do for bypassing a protection. I don't going to tell it here for known reasons. However, described way can help to fix random "bug" in Win 7 at least.
As about Win 8/10, I don't really like Microsoft enforced those mechanism preventing devs from simplification of user actions. I understand why is it for, however, at the moment the way they implemented it looks like a half measure. If I can bypass it with simple script, anybody can. I don't use Win 10 a lot, and I just hoping one day those "set a default applet" feature doesn't bug similar way to "open with" dialog.