Page 1 of 1
Cannot open program from context menu
Posted: 03 Oct 2020 22:58
by TMProjection
Hey, I have program called MP3Tag, that comes up in my context menu, for example
right click on a video file > Mp3tag
in windows explorer it opens the program fine with the video in question
but when i try this in XYplorer it doesnt open the program
I got a feeling its because the program is 32bit? as it is installed in
C:\Program Files (x86)\Mp3tag\Mp3tag.exe
https://www.mp3tag.de/en/download.html
If thats the case, i dont think a 64 bit version of the program exists, so would there be a way to open a 32 bit program from context menu?
Re: Cannot open program from context menu
Posted: 03 Oct 2020 23:08
by highend
When the 64-bit context menu is your default in XY, you're probably out of luck
Re: Cannot open program from context menu
Posted: 03 Oct 2020 23:24
by TMProjection
hmm, yeah this is enabled
show the 64 bit context menu: on
what i find odd though, is that the item appears in the 64 bit context menu then it should work shouldnt it?
in comparison to Windows 10 Explorer, it does this no problem, but obviously i understand its built differently etc
btw @highend, are you one of the developers?
i see you are a moderator, but just wondering if you know how its built etc, and know its limitations?
there must be some way around it, the way i see it if windows explorer can do it surely another program could immitate it too?
Re: Cannot open program from context menu
Posted: 03 Oct 2020 23:33
by highend
I'm not one of the developers (there is only one) but I have seen the source code for the 64-bit context menu and I can't spot anything in there why this doesn't work as it should...
Re: Cannot open program from context menu
Posted: 04 Oct 2020 00:16
by TMProjection
so the Windows Explorer for example, since it works in that
is it using both 32 AND 64 bit context menus? is that why it works?
because i assume XYplorer using only one of the systems, 32 bit OR 64 right?
Re: Cannot open program from context menu
Posted: 04 Oct 2020 09:46
by highend
Nobody knows how that context menu entry was implemented code-wise (apart from the programmer of MP3Tag).
The only thing we know is that some context menu entries only work 100% reliable with Windows Explorer. Obviously, the MP3Tag one belongs to that category.
Create a user defined command, a button, a catalog entry (whatever you want) with a script and execute that one instead:
Code: Select all
$app = "C:\Program Files (x86)\Mp3tag\Mp3tag.exe";
$cnt = <get CountSelected>;
if ($cnt == 0) {
run """$app"" ""<curpath>""";
} elseif ($cnt == 1) {
run """$app"" ""<curitem>""";
} else {
$quoted = quote(get("SelectedItemsPathNames", '" "'));
run """$app"" $quoted";
}
Re: Cannot open program from context menu
Posted: 04 Oct 2020 10:48
by admin
TMProjection wrote: ↑03 Oct 2020 22:58
If thats the case, i dont think a 64 bit version of the program exists, so would there be a way to open a 32 bit program from context menu?
The command does not show up in XYplorer's 32-bit context menu?
Re: Cannot open program from context menu
Posted: 04 Oct 2020 10:54
by highend
It shows up in both context menu bitnesses but it does not work in the 64-bit one (nothing happens)
Re: Cannot open program from context menu
Posted: 04 Oct 2020 11:08
by admin
I guess some shell extensions perform some kind of callback with Explorer, and when Explorer is not there they fail.
Re: Cannot open program from context menu
Posted: 29 Nov 2020 05:08
by TMProjection
highend wrote: ↑04 Oct 2020 09:46
Nobody knows how that context menu entry was implemented code-wise (apart from the programmer of MP3Tag).
The only thing we know is that some context menu entries only work 100% reliable with Windows Explorer. Obviously, the MP3Tag one belongs to that category.
Create a user defined command, a button, a catalog entry (whatever you want) with a script and execute that one instead:
Code: Select all
$app = "C:\Program Files (x86)\Mp3tag\Mp3tag.exe";
$cnt = <get CountSelected>;
if ($cnt == 0) {
run """$app"" ""<curpath>""";
} elseif ($cnt == 1) {
run """$app"" ""<curitem>""";
} else {
$quoted = quote(get("SelectedItemsPathNames", '" "'));
run """$app"" $quoted";
}
Hey again Highend, would any of these entries be stored in the context menu? i would like to add it so it does the exact same thing it does in windows explorer
for example > right click > MP3Tag (SINCE THIS DOESNT WORK, COULD WE ADD ANOTHER CONTEXT ITEM FOR EXAMPLE:)
for example > right click > MP3Tag (Script)
if so how would i do this please
Re: Cannot open program from context menu
Posted: 29 Nov 2020 09:36
by highend
You would need to unregister MP3Tags shell extensions first
In a command prompt with admin permissions and inside MP3Tags installation folder
Code: Select all
regsvr32 -u Mp3tagShell64.dll
regsvr32 -u Mp3tagShell32.dll
and then save this as e.g. "mp3tag_own.reg" and afterwards right click on that file and use the "Merge" command from the context menu + allow its modifications...
Code: Select all
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\MP3Tag (Own)]
"Icon"=""
"Position"="Middle"
@="MP3Tag (Own)"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\MP3Tag (Own)\Command]
@="\"C:\\Program Files (x86)\\Mp3tag\\Mp3tag.exe\" \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\MP3Tag (Own)]
"Icon"=""
"Position"="Middle"
@="MP3Tag (Own)"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\MP3Tag (Own)\Command]
@="\"C:\\Program Files (x86)\\Mp3tag\\Mp3tag.exe\" \"%1\""