-
Notifications
You must be signed in to change notification settings - Fork 160
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
Windows 11 integration need an option for keeping the old context menu #994
Comments
Unable to reproduce. Windows 11 shell extensions work fine in Total Commander including properly opening the file in MediaInfo and Mp3tag. In my opinion the user should contact developer of Total Commander for any compatibility issues instead of requesting changes from each and every app to be compatible with Total Commander. Most apps that implement the new shell extension no longer have the legacy shell extension. Unrelated note: Many apps do not even have an option to disable the context menu entry. Mp3tag only has option to disable in Store version while the installer version can only enable/disable the context menu during installation. |
If it works properly in Windows File Explorer but not on Total Commander then I have no idea why. It works when I tested in Total Commander. Only the developer of Total Commander will know. |
In Explorer the same thing. |
Windows File explorer uses the new package but Total Commandes uses the old fashion registry, so it makes sense up to...
This part is weird, it does not work on 1 machine but works on another machine... If Total Commander does not use the new package, how does it get the context menu on @cjee21 machine? |
MediaInfo only creates one entry. Since it appears in the main context menu means it is working properly. The entry in shift+context menu should contain everything that the main context menu has. If it does not then it may be a Windows bug but I have not seen this happen before. |
If this refers to my test, I have done the test on a newly set-up fresh-install Windows 11 VM (official ISO direct from microsoft.com) with nothing else installed other than the test apps because I do not want to install shareware/trialware on my main PC so there is no possibility of anything remaining from development or previous installs etc. |
So I dug abit and found this by author of Total Commander:
MediaInfo's shell extension does not have any features that prevents it from being used/loaded by third party programs. The fact that it appears when a folder is selected in #994 (comment) is evidence for this. Piecing this together with #994 (comment):
It now makes sense. This issue is not about old/legacy vs new/packaged shell extensions. It is also not about shell extension not working in Total Commander or third party apps. It is that MediaInfo's entry is missing from legacy context menu when a file is selected but not when folder is selected. Since #994 (comment) mentions that it is available for files and folders in the main/new context menu, I have no idea why it does not appear in the other. The fact that it appears on the main context menu means Windows has correctly picked up the registration and successfully loaded the shell extension. It also means MediaInfo's shell extension has correctly read the Preferences and enabled itself. In addition, it works on other Windows 11 systems including in Total Commander for both files and folders. It is looking likely that this is an issue with the particular Windows installation and is not something that MediaInfo can solve. |
This line in the initial post is now proven to be false by screenshots in #994 (comment) and #994 (comment). Note: It is actually not 'Windows 11 style' as it is supported since Windows 10 Build 19000 (4 years ago) and is the only method that can be used by Store apps. |
I am completely lost. Let's try to summarize, on specific machines:
Additionally, I just received this email:
It seems that we have an option somewhere for the classic context menu on Win11...
Something was working in the past and is not working anymore, so we can solve that at least by reverting to the previous code, but we could also find a way to have everyone happy. |
Windows will automatically populate both new and old context menus when a context menu entry that is registered by a package is present. This means @sevastopolcat that has entries for new menu but not the old one and only for files but not folders is an issue unrelated to MediaInfo but is something going wrong in Windows. In this case it is expected that it does not work in Total Commander too since this app uses Windows API to build the old style menu. It also means doing "For the moment the easiest solution I see is to keep the legacy menu in addition to the packaged menu" will cause duplicate entries. For "This is a bad solution as I set windows to use classical context menus", something else is the issue as well. I just tried setting Windows to only use the old menu and MediaInfo is still present there. So in conclusion, all the issues so far are not directly due to the new shell extension. In addition, right now, MediaInfo will only remove the old shell extension when the new one is found in the registry. MediaInfo/Source/Common/Preferences.cpp Line 827 in 886b555
|
If anyone still has the wrong idea about Windows 11 context menus, So it is not about replacing old shell extension with new one equals will not work if new context menu is disabled or third party app does not support new context menu. Replacing old with new should have no difference other than ability to open multiple files in the same MediaInfo instance. If it breaks something, then there is an issue somewhere and putting back the old shell extension would be just a workaround and not a solution to the underlying issue. |
My idea (one of the following):
|
After some more digging, turns out this issue (entry not appearing in legacy menu on certain PCs and in some cases only affects files and not folders; third party apps also will be missing the entry in this case) has been encountered by other apps before. It appears to be a strange Windows bug that can be mitigated like the following: https://github.com/M2Team/NanaZip/blob/e54855e1cfbc775f586a08a6298248b52559e2f8/NanaZipPackage/Package.appxmanifest#L276-L277 Comparing the IDs of a few apps, I see no pattern in what causes it to not work on certain PCs. It is not known what factors on a PC triggers the issue too. |
I am fine with changing that if it is a way to mitigate the issue...
The feature is good for most users, limiting that to the Store would be sad, it is not because there are a couple of issues that we need to wipe out the feature for most users.
I don't get why we can not just add an option for switching back to the registry and the package just leave like if the option is disabled in that case, no need to remove everything, or do I miss something?
PS: another case at https://sourceforge.net/p/mediainfo/discussion/297610/thread/364aa79842/ |
After we workaround the Windows bugs, most of the other issues (such as MediaInfo not launching) will likely only be mitigated by complete removal of package identity. Those issues will likely be caused by corrupt Windows or disabling of core Windows services. Even this current bug is caused by packaging and likely before the shell extension is loaded and decides whether to show. Therefore I do not see much benefit of having an option in Preferences for that. It will add the following:
|
Temporarily (before reinstalling Windows), I bypassed my problem not entirely correct. Installed the installer 24.11.1 and rolled on top of the portable 24.12. |
So it can happen to Mp3tag too... Mp3tag Verb Id is Microsoft Notepad Verb Id is Fun fact: Microsoft registered Notepad shell extension for
@sevastopolcat if you plan to reinstall Windows, you can wait for a new build (#997) with renamed Verb Id first to see if it can bypass the issue. |
Of course, I will wait for the new version(s) and inform the results. |
@cjee21 I received this use case of a user not finding anymore MediaInfo in the context menu:
So if we don't go with the idea of an option we may need to check (both in the installer and the GUI?) that |
I expect this is due to same Windows bug and that it will be working after #997. When I mentioned
in a post above, I am doing it with a similar registry tweak manually. This registry tweak just makes Windows go straight to the classic menu instead of opening the new one, nothing else as far as I know. Same behaviour as holding shift before right click. If it does not appear after this tweak, it will not appear in the classic menu without this tweak either. As I mentioned earlier, the new shell extension although is needed to appear in the new menu, actually has nothing to do with Windows 11 or the new menu and will still work without the new menu. If it doesn't something is wrong somewhere and reverting to old shell extension will be just a workaround rather than addressing the cause. The Verb Id Windows bug addressed in #997 actually existed since Windows 10 in 2021. Since Windows 10 only has one type of context menu, it results in totally no entry. NanaZip originally received report of this bug in 2021 and someone only found the workaround in 2022. |
I asked to test the new build, we'll see.
If we can find the issue for (mostly) everyone, it is fine for me...
And good that you found the thread there! |
If it appears in Windows File Explorer classic menu but not in Total Commander then it is an issue with Total Commander. If it does not appear in Explorer classic menu too then it may be some Windows bug again. In that case reverting to old shell extension is not really a solution as it will then be gone from the new menu. To better determine causes, think we need info about Total Commander version, is it 64 or 32 bit, how many shell extensions are installed (maybe Windows has a bug that stops parsing verb ids at a certain letter after some limit). I also wonder if Microsoft is aware of the bug since it seems to remain from Windows 10 2021 to Windows 11 2024. If it is really caused by some limits then there may be more issues as more apps installed by a typical user adopt the new shell extension. |
Well, it was working with the old shell extension so it is a solution, but I understand that you want to try to avoid that. For the moment I wait for feedback from the Winaero user, it the new binary does not work the first thing to implement is to check the indicated registry entry, I think, for checking if this registry entry is a good trigger, I guess. Anyway, let's wait for the feedback. |
We should fix/workaround any bugs with the new shell extension as much as possible first. Else there will be more issue reports from Windows 10 users when shell extension is implemented for the Store version. There will be no old shell extension or new context menu as a workaround in the case of Windows 10 + Store app. It will just be no context menu entry. Also note that the registry tweak is undocumented and the key may be changed by Microsoft. |
I specifically checked Winaero Tweak Classic Full Context Menu. |
Wow, thanks for the tests.
It is always the last hope in case the MediaInfo context menu does not show up on some machines, not something I desperately wish :).
This may be the ultimate solution... Could you try method and say if it works with everything?
Unfortunately it is not the case everywhere, but I expect that the * solution would be fine with them too so no need of the "aaaa" workaround. |
The original design was using In this specific Directory Opus case, they seem to be handling shell extensions themeselves rather than using Windows APIs. So it is their developer that has to fix the bug where their expensive paid app is not correctly showing shell extensions that use a list of file extensions. Many shell extensions are affected.
|
I would like a allowlist, the same as with the manifest. Something to maintain but if it is the best method for all machines, we do it...
But the * part would permit to show MediaInfo context menu, right?
The * update would not put a regression there, right? |
In Directory Opus case, yes. This app is handling shell extensions with
Not expecting any regression but I cannot guarantee anything after seeing all these 'crazy bugs' on some systems that are not expected and cannot be reproduced. What I am sure is |
Opus developer here. We're happy to take a look at this, but on a quick test using the most recent version (downloaded from here) it seems to work ok for me (when right-clicking a JPG file anyway). Is there anything I need to do to make it stop working? |
That's interesting. After getting reports from users that it was not working in Directory Opus, I tested in a Windows 11 24H2 VM and found that only for folders it is showing. For mp4, MediaInfo and Mp3tag were not showing while for jpg, MediaInfo, Clipchamp, Photos and Paint were not showing. Screenshots are in #994 (comment) for folder and jpg. In my tests, the ones that appear happen to be the ones who declare |
I did a bunch of tests and found that whether Directory Opus shows MediaInfo in context menu depends on the file type. Not working: webp, ogg, wav, mp3, webm, wmv, mp4, mov, avi. Working: ico, tiff, gif, png, jpg. |
I'm on this snapshot and in directory opus it does in fact only show up any UWP stuff on folders, that includes MediaInfo. But not on any files for me. Can see MediaInfo in Misc -> Shell Extensions settings marked as N/A unloaded along with all other UWP context menu options. What isn't working:
What is working:
I've tried:
Only solution for me so far has been to downgrade back to 24.11.1 for now.
|
@cjee21 thank you again for all the tests. |
Only the developer of Directory Opus knows. All the shell extensions work properly in Windows and on other third-party file managers as seen in previous tests so there is actually no issue with not using |
Headache, it seems that Total Commander also has the problem, see https://sourceforge.net/p/mediainfo/discussion/297610/thread/364aa79842/?limit=25#2eb1/3002 If I understand that it is not pure but I try to be pragmatic here, my users have an issue and I can mitigate it if I am not the source of the issue. Currently thinking that the option is the best, at least we permits the old behavior and everyone can have a good thing ("normal" users with the modern style, specific cases have the old style). |
What about you make a test build with a
It's working on many systems already so don't know what bug is this. Might be Windows or third party shell extensions as Total Commander is said to use Windows API to construct the context menu. |
Go! :) |
You don't need me for this simple test right? Anyway here is a patch to make it even easier: patch.patch |
I am always afraid of doing something wrong there, it is so uselessly complicated... |
@cjee21 the I give up for the workarounds, the only method for making it working again on such machine seems to be the old method, and reason other tools have the option for switching back to the old method, I guess... |
I see a mistake. There should be no dot for the *.
For me, this new method of shell extensions is less complicated compared to the MediaInfo codes dealing with registry entries for the old shell extension |
Oops. |
I did test |
That did in fact work for me on Directory Opus, but of course now applies for every single file regardless of type. For me that isnt a huge deal but yeah. |
@rlaphoenix It was for testing that it works before implementing the filter list inside the shell extension DLL (because the list of extensions in the app manifest seems to not work everywhere). |
Don't know the cause. The other systems with Total Commander works properly. So now we proceed with both file extension filtering in dll (and adding shortcut handling if it is not too difficult) as well as option for legacy shell? To @opusman, there is indeed a bug somewhere in Directory Opus that causes UWP shell extensions that has a list of file extensions to not appear in Directory Opus. This affects all shell extensions and not only MediaInfo. Changing AppxManifest of an app to declare |
@JeromeMartinez unrelated: I just noticed there are some |
Feedback from a user.
When calling the context menu from Total Commander, there is no more the context menu because the Windows 11 Explorer style is not supported, so we need an option for keeping the old context menu as it is done in other tools.
WinRAR:
TreeSize:
The text was updated successfully, but these errors were encountered: