x64 shell context menus
x64 shell context menus
In Winx64 I use a lot of 64-bit software that installs context menus for x64. They do not show up in the 32-bit XYplorer. Is there any way to get them to work? A utility that can copy over the 64-bit registry keys to the 32-bit registry maybe?
Re: x64 shell context menus
If you can't find a compatible 32bit shell extension you're out of luck.
A x64 version of XYplorer will arrive (eventually) in 2012...
A x64 version of XYplorer will arrive (eventually) in 2012...
One of my scripts helped you out? Please donate via Paypal
Re: x64 shell context menus
Why is this? Surely the only difference is some keys in the registry? Winrar, for example, shows up in both and it's a 64-bit only. So it's not impossible. After all, it's just file associations and all the information is contained in the registry somewhere.
Re: x64 shell context menus
Nope.Surely the only difference is some keys in the registry?
What you mean is: You've installed the x64 version of Winrar. Winrar itself installsWinrar, for example, shows up in both and it's a 64-bit only.
it's x86 shell extension automatically, too.
One of my scripts helped you out? Please donate via Paypal
Re: x64 shell context menus
On the other hands side: Total Commander is a 32 bit application as XY is, but under W7/64 it shows the 32 bit shell extensions in the context menu as well as the 64 bit shell extensions.
-
- Site Admin
- Posts: 60635
- Joined: 22 May 2004 16:48
- Location: Win8.1 @100%, Win10 @100%
- Contact:
Re: x64 shell context menus
I guess that's done in a submenu that's fed by some 64-bit helper EXE that's delivered together with the main tc.exe?ogroeger wrote:On the other hands side: Total Commander is a 32 bit application as XY is, but under W7/64 it shows the 32 bit shell extensions in the context menu as well as the 64 bit shell extensions.
FAQ | XY News RSS | XY Twitter
Re: x64 shell context menus
I would imagine there is some way to write a wrapper or proxy. They do it with vst's so it should be possible to write a similar thing for shell extensions.
Re: x64 shell context menus
Yes, the 64 bit extentions are located in a x64 submenu.I guess that's done in a submenu that's fed by some 64-bit helper EXE that's delivered together with the main tc.exe?
-
- Site Admin
- Posts: 60635
- Joined: 22 May 2004 16:48
- Location: Win8.1 @100%, Win10 @100%
- Contact:
Re: x64 shell context menus
So if any of you can write and compile such a thing: do it and give it to me!ogroeger wrote:Yes, the 64 bit extentions are located in a x64 submenu.I guess that's done in a submenu that's fed by some 64-bit helper EXE that's delivered together with the main tc.exe?
FAQ | XY News RSS | XY Twitter
Re: x64 shell context menus
I would help but I really don't have the time to figure it out.
This maybe the way to deal with it:
Try to get at the registry for x64. This might require writing an x64 proxy or reading the hive directly(I don't have enough experience with WOW64 to know how 32-bit apps work). How ever you do this in the 32-bit version(not sure if it is a win32 api/COM to get the shell extensions or just registry stuff or what) you can do the same in a 64-bit proxy and maybe even get the 64-bit info from a 32-bit app just to display the context menu items.
It maybe more difficult to execute the context menu commands. I'm not sure if one uses verbs or what.
I've never done any context menu stuff so I really don't know. What I do know is that what you do in 64-bit apps should be identical to 32-bit with the difference being how windows uses WOW64 for 32-bit apps instead of 64-bit. Hence a 64-bit proxy/bridge should work. The trick is to find the easiest way which may not require such a bridge.
Just quickly searching gives results like
http://netez.com/2xExplorer/shellFAQ/bas_context.html
which make it seem like you'll just need to write a 64-bit wrapper. One should be able to create a simple bridge that any app could plug an play to get both 64-bit and 32-bit as one(what I initially talked about).
1. Create an interface for the context menu handlers.
2. Implement the interface. This probably just involves wrapping the shell commands and compiling for 64-bit and 32-bit.
3. Create some type of generic interface that your app(or any others) will use. This will require some interprocess communication because it will be in the opposite space as the app(so either com, DDE, clipboard, etc...).
That should be it.
Your app interacts with the generic interface. The generic interface pushes the calls to the appropriate context menu handler. As long as there is not any crazy thing context menu's can do then it should be easy to implement.
This maybe the way to deal with it:
Try to get at the registry for x64. This might require writing an x64 proxy or reading the hive directly(I don't have enough experience with WOW64 to know how 32-bit apps work). How ever you do this in the 32-bit version(not sure if it is a win32 api/COM to get the shell extensions or just registry stuff or what) you can do the same in a 64-bit proxy and maybe even get the 64-bit info from a 32-bit app just to display the context menu items.
It maybe more difficult to execute the context menu commands. I'm not sure if one uses verbs or what.
I've never done any context menu stuff so I really don't know. What I do know is that what you do in 64-bit apps should be identical to 32-bit with the difference being how windows uses WOW64 for 32-bit apps instead of 64-bit. Hence a 64-bit proxy/bridge should work. The trick is to find the easiest way which may not require such a bridge.
Just quickly searching gives results like
http://netez.com/2xExplorer/shellFAQ/bas_context.html
which make it seem like you'll just need to write a 64-bit wrapper. One should be able to create a simple bridge that any app could plug an play to get both 64-bit and 32-bit as one(what I initially talked about).
1. Create an interface for the context menu handlers.
2. Implement the interface. This probably just involves wrapping the shell commands and compiling for 64-bit and 32-bit.
3. Create some type of generic interface that your app(or any others) will use. This will require some interprocess communication because it will be in the opposite space as the app(so either com, DDE, clipboard, etc...).
That should be it.
Your app interacts with the generic interface. The generic interface pushes the calls to the appropriate context menu handler. As long as there is not any crazy thing context menu's can do then it should be easy to implement.
-
- Posts: 162
- Joined: 02 Dec 2011 21:18
Re: x64 shell context menus
I looked around for popup launchers to quickly access the 64-bit menu but none of them were able to do it. The closest solution is to place a toolbar on the taskbar (e.g. to C: drive) and shrink it till nothing but the chevrons show. A cascading menu appears when you click these chevrons and the 64-bit context menu appears when right-clicked.
You can activate the chevrons with Win+T then a sequence of Tab and ArrowKey strokes or more directly via RB_PUSHCHEVRON (http://www.autohotkey.com/forum/topic35942.html). However, I don't know how (or if) the currently selected item could be sent to the menu. Besides if its deeply nested it less than ideal.
-----------------------
Using NirSofir's NirCmd (to open WE with the item selected and then hit the Menu key) works, but leaves you with a WE window open. Maybe it could be refined or done better with AHK.
-----------------------
There is one open source app that does nothing but call the shell context menu but its not 64-bit and pretty out of date.
http://blogs.msdn.com/b/oldnewthing/arc ... x#comments
http://blogs.msdn.com/search/SearchResu ... tions=2905
You can activate the chevrons with Win+T then a sequence of Tab and ArrowKey strokes or more directly via RB_PUSHCHEVRON (http://www.autohotkey.com/forum/topic35942.html). However, I don't know how (or if) the currently selected item could be sent to the menu. Besides if its deeply nested it less than ideal.
-----------------------
Using NirSofir's NirCmd (to open WE with the item selected and then hit the Menu key) works, but leaves you with a WE window open. Maybe it could be refined or done better with AHK.
-----------------------
There is one open source app that does nothing but call the shell context menu but its not 64-bit and pretty out of date.
Out of curiosity. I tried it on my Win7 64-bit system. It didn't work with all file types but curiously worked best for image files. The context menu pops up and commands can be activated. Extensions are visible and work (e.g. the XnView extension). Submenus did not work. I don't know if this code could be updated and 64-bit compiled but it might give somebody useful pointers. As might this thread:CmdUtils v1.5
Matt Ginzton, MaDdoG Software
http://www.maddogsw.com/cmdutils/
A collection of a few free utilities to make life at the Win9x/NT command line a bit easier and more flexible. Source code included.
CmdUtils currently include:
ContextMenu (context.exe), which displays the shell context menu for the specified file(s); from here, with one more step, you can get Properties, Quick View, or any other supported action for the specified file(s).
http://blogs.msdn.com/b/oldnewthing/arc ... x#comments
http://blogs.msdn.com/search/SearchResu ... tions=2905