user3145909
user3145909

Reputation: 75

Launch an Application from a Browser

I would like to have a link or button on my web site that launches
vim (an editor) on a specific file (e.g., myfile.txt) on my local machine.
I want to launch C:\Vim\Vim74\gvim.exe on C:\Users\paulco\myfile.txt form any browser.

I want this to work on all (realistically most) browsers.
I actively use Chrome, Opera, FireFox and IE (in that order of preference).
In order for it to work across all of these browsers,
I think the script has to Java-based.

Does anyone know how to do this?
Does anyone have a Java-based script that does this?

Here are some resources I found on the topic.
But either they are IE specific or don't work.
Launch application from a browser
http://msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx

Upvotes: 0

Views: 168

Answers (1)

Udo Klimaschewski
Udo Klimaschewski

Reputation: 5315

I have tested the following on Internet Explorer, Chrome, Opera and Firefox.

The browser has to run on a Windows operating system, Linux and Mac require different aproaches.

Solution is to define a protocol handler for a custom protocol.

1) Take this HTML example, it should open the specified text file using notepad.exe:

<a href="test:c:\temp\file.txt">Open Textfile</a>

2) You need to define the protocol handler in the windows registry, save the following to a file named testing.reg and execute it (double click on it), or enter the values manually using regedit:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\test]
@="URL:Editor test"
"URL Protocol"=hex(2):00,00

[HKEY_CLASSES_ROOT\test\DefaultIcon]
@="\"C:\\Windows\\system32\\notepad.exe\""

[HKEY_CLASSES_ROOT\test\shell]

[HKEY_CLASSES_ROOT\test\shell\open]

[HKEY_CLASSES_ROOT\test\shell\open\command]
@="\"C:\\temp\\editor.bat\" %1"

3) As you can see, I am not calling notepad.exe directly, but a c:\temp\editor.bat batch file. This is because the file-parameter has to be modified. using the %1 as a parameter will pass the complete URL including the test: custom protocol name to the shell. In the script, I use a simple substring pattern to extract the specified file name and call the editor:

REM editor.bat
set param=%1
notepad %param:~5%

That's all!

Upvotes: 1

Related Questions