In my recent Ubuntu and Windows install for my father, a requirement was to open images shown in Firefox (which runs on the host Ubuntu OS) in Corel Paint Shop Pro which runs in the VirtualBox guest Windows 7 OS.

The command to execute an application from the host in the guest is vboxmanage guestcontrol [...] exec, documented here. It also needs the (guest OS) user credentials, the application to run and its arguments. Also note, that back-slashes have to be escaped, and since the path contains spaces it has to be in quotes.

The following assumes that the name of the VirtualBox machine is called “win7″, and application to run is PSP, and shows example values for username, password and filename.

Note that it also assumes that the Windows drive S:\ is a shared mount point between the host and guest OS, and that downloaded images is saved to that location.

vboxmanage guestcontrol win7 exec --image "C:\\Program Files (x86)\\Corel\\Corel PaintShop Pro X5\\Corel PaintShop Pro.exe" --username my_guest_user --password my_guest_password -- "s:\\image_file.png"

So far so good. However, to execute this for any image in Firefox proved a bit tricky. It does not seem to be possible to associate an Open action from the right-click menu with a given application in Firefox. The plugin “Open With Photoshop” came to the rescue. It gives an extra menu item when right-clicking on any image, and what most useful, it let’s you choose the executable to run.

I took the command above, and created my own script, e.g. “corel_psh.sh”, which looks like this:

#!/bin/bash
 
WINUSER=my_win_user
PASSWORD=my_win_password
 
f=$1
b=`basename $f`
 
vboxmanage guestcontrol win7 exec --image "C:\\Program Files (x86)\\Corel\\Corel PaintShop Pro X5\\Corel PaintShop Pro.exe" --username $WINUSER --password $PASSWORD -- "s:\\$b" &> /tmp/open_with.log

I suppose a valuable addition would be to move the downloaded file to the correct location if necessary.