-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rename shell extension Verb Id 2 #998
Conversation
Workaround Windows issue causing shell extension to not appear in classic context menus on certain systems.
@JeromeMartinez I hope is parses numbers before letters. If this does not work then |
Still works fine on my system as expected. |
I just noticed something... When right-click a shortcut to a folder, MediaInfo only appears on the classic menu and not the new main menu. |
And with the previous version "CMediaInfo" it is not the case? Do you see how you could change that? At least we have a machine with this "issue" now :). |
I think it always has been like that but I only noticed it. I am very sure previously it is not shown for shortcuts on the new main menu but did not check the classic one previously. Same with a shortcut to a media file. Looks like Windows has different evaluation logic when determining which entries to show for both types of context menu and they only have shortcut resolving for the classic one. Using the classic context menu on a shortcut will load the target file in MediaInfo and not the shortcut itself. Selecting a shortcut + an actual file at the same time will open the shortcut target only or the actual file + the shortcut file itself depending on which is right-clicked on. |
Feedback for the user:
It is so crazy... But if it the way to go, we do that. |
To be clear, the MediaInfo entry on new menu for shortcuts disappeared when we changed * to the list of file extensions. To me this is not an issue/bug but expected behaviour since we did not list .lnk. However, I just discovered that the classic Windows menu has shortcut resolving feature so the shortcut will be resolved to the target and context menu entry behaves like the actual target is the one right-clicked. |
My possible explanation that makes this not so crazy is that Windows has a bug that only parses a limited number of shell extensions from 0 - z for the classic menu. When user has many shell extensions installed, the one starting with later alphabets will be missing. So when NanaZip and MediaInfo didn't use "C", it does not work for several people who likely has many extensions starting before "M". When using "C", both apps work for almost all except a very few who maybe has extensions starting with "B" or 0 - A such as "BandiView" as tested by someone in NanaZip thread (NanaZip with "C" prefix stopped appearing as soon as BandiView installed was claimed). As for why Mp3tag and Windows pre-installed apps still work, maybe apps that were already parsed successfully previously are cached somehow. Anyway, I may be completely wrong because who knows how Windows actually works. 😆 |
If no regression, I merge this PR.
Maybe Microsoft wants us to resolve the shortcut and show the MediaInfo menu, doable? |
For the moment, it works, so we do with that, hoping that Microsoft will fix that at some point, before everyone does "000000000000000000000...." stuff... |
If you want, we need to do shortcut resolving and extension filtering in the shell extension and just put Seems this is what Notepad and possibly other Microsoft apps shell exts does. The manifest has just |
I was thinking to only shortcuts so ".url" files, and the shell extension dynamically checks if the target extension is what we want.
I am fine with that.
It is what I expect. resolving that either in the shell extension or MediaInfo (maybe the later, so drag n drop works? Not currently the case) |
If we check target extension in DLL then DLL needs a list of extensions so there is no need to duplicate that list in manifest is what I think. Just Most shortcuts on Windows are |
Another possible explanation is that another shell extension that Windows loads first is somehow causing Windows to stop loading further extensions. This is because it does not really make sense that Windows has a shell extension limit and if so it is unlikely that there are that many shell extensions with verb starting earlier than "C". It is also in line with how a NanaZip user managed to reproduce the issue on a fresh install ("when I finish installing bandiview and hiding the context menu in the settings, it deletes the context menu of nanazip"). I also looked at previous screenshots and noticed that MediaInfo is now higher in the classic menu after the verb rename. As to why the new main menu is not affected, it is a different ordering there (not sure what affects the order) with MediaInfo already at the top. So it could be bugs in other shell extensions but if true, Windows is also at fault for enabling a shell extension to affect other shell extensions. |
Workaround Windows issue causing shell extension to not appear in classic context menus on certain systems.
Continuation of #997