Registering a context menu that doesn't have a CLSID

I am intimately familiar with FileType CONTEXTFORCE CONTEXTMENU used to register shell extensions in DO FileType menus but just ran into a new one that has me baffled. After installing Windows 8 I noticed that virtual cd/dvd drive support is built in which is pretty cool, so I don't have to use something like Alcohol 52% to create virtual disks anymore. Windows 8 now presents the shell context menu "Mount" when an iso or other image file is selected. Problem is that I can't figure out the shell syntax to use in DO as the Mount command is not registered with a CLSID that I can find (using NirSoft ShellExView.) Instead what I'm finding in the registry are a couple of entries with the following values....

HKEY_CLASSES_ROOT\Windows.IsoFile\shell\mount\command
(Default) %SystemRoot%\Exporer.exe
DelegateExecute {9ab3b1c9-3225-4bb4-93b6-bfb3c0d93743}

HKEY_CLASSES_ROOT\Windows.VhdFile\shell\mount\command
(Default) %SystemRoot%\Exporer.exe
DelegateExecute {9ab3b1c9-3225-4bb4-93b6-bfb3c0d93743}

My first thought was to register the above CLSID in DO using - FileType CONTEXTFORCE CONTEXTMENU={9ab3b1c9-3225-4bb4-93b6-bfb3c0d93743} but that does not work.

Any ideas on how I can register the Mount command in a DO FileType menu?

TIA
Mark

You can probably use the ContextMenu command to do it. (Note: It's different to the FileType command's CONTEXTMENU argument.)

Select an ISO and run "ContextMenu SHOWCMDS" to get a list of menu items for it. From there you can get either the verb or the label of the menu item (verb is best), and you can then make a ContextMenu command which executes that item.

Here's the online docs on the ContextMenu command, but note that the command was extended in the 10.2.0.1-beta (in particular, being able to run menu items via their labels), so if you have that installed open the F1 help to the same page for a better list of what you can do:

gpsoft.com.au/help/opus10/defaul ... ommand.htm

Tell me Leo, will the Mount option when right licking an iso file become available as it is in MS Fileexplorer for Windows 8?

In what context?

Hey Leo.

Thanks for the tip... ContextMenu SHOWCMDS is a useful new tool. I always learn something new about DO from your posts :slight_smile:

Unfortunately, it did not solve my problem. The "Mount" shell menu command was not in the ContextMenu SHOWCMDS list for disk images. Any other suggestions?

Thanks
Mark

I had the same issue. I had to re-associate iso with windows explorer.
1.Right-click the .ISO file, choose Properties.
2. Click the Change button.
3.Choose Windows Explorer from the application list.
4.The Opens With option will change back to Windows Explorer.
5. Click Apply, then OK to close the properties window.

Then in opus filetypes->iso you should be able to use contextmenu id 132 (use showcmd, your number may be different). You will also be about to just double click on the iso to mount it.

The biggest pain for me is having to go to my computer and then right-click on the drive letter to eject it. Haven't figured out a better way.

Right-click the ISO file.

Using the ID is a bad idea, since it might change (even on the same system).

The latest beta version (10.2.0.1) lets you use the menu item's label to run the command, which is better/safer. (Using the verb is even better, but not all commands have verbs.)

Details are in the F1 help: Reference / Command Reference / Internal Commands / ContextMenu. Check out the LABEL argument, whose description mentions a few others that may also be useful.

Leo --

Even from the manual it wasn't clear to me what "Label" is. Is it the wording in parentheses as in 130 (unnamed) (mount) ?

If it says "(unnamed)" for the first part then it doesn't have a label. (Which is odd, for a simple command like that.)

But it looks like it has a verb: "mount"

So try ContextMenu VERB mount

I've confirmed that ContextMenu VERB mount works. FYI, the ID had already changed on my system since Windows updates last night. I also found I can use go eject to remove the mounted drive. Is there a go command that would return the lister to the default tab? My default tab group has both sides so I don't want to invoke that. Otherwise it sits at the ejected drive letter.

Delayed reaction to this post... finally got back to looking at this again.

I was also able to confirm that ContextMenu VERB Mount works as does just ContextMenu Mount. Thanks for the help guys :smiley:

Mark