URI
stands for Uniform Resource Identifier, used to uniquely identify a resource.
What is URI Scheme?
URI
scheme tells how to interpret given URI.
In
this post, I am going to explain how to launch URI scheme in windows. I am
going to develop simple java application, where it read an url and open it in
browser.
Following
is my URI open class.
import java.awt.Desktop; import java.io.IOException; public class URIOpen { public static void main(String args[]) { if (args.length == 0) { return; } String uri = args[0]; try { java.net.URI theURI = java.net.URI.create(uri); // System.out.println(theURI.getScheme()); => myDocs String uriBrowsablePart = theURI.getRawSchemeSpecificPart(); // System.out.println(uriBrowsablePart); => http://google.com Desktop.getDesktop().browse(java.net.URI.create(uriBrowsablePart)); // the above statement will open default browser on http://google.com } catch (IOException e) { System.out.println(e.getMessage()); } } }
Compile
the class and generate URIOpen.class file.
It
is time to register our application with windows registry.
Step 1:
To
register an application to handle a particular URI scheme, add a new key, along
with the appropriate sub keys and values, to HKEY_CLASSES_ROOT. The root key
must match the URI scheme that is being added. For instance, to add an ‘myDocs:’
scheme, add an alert key to HKEY_CLASSES_ROOT, as follows.
Open
run prompt and type ‘regedit’ and press Enter. It opens registry window like
below.
Right
click on ‘HKEY_CLASSES_ROOT’ and add new key to it.
Give
the key name as ‘myDocs’.
You
need to add new value under the key ‘myDocs’. Under this new key, the URL
Protocol string value indicates that this key declares a custom pluggable
protocol handler. Without this key, the handler application will not launch.
The value should be an empty string.
Right
click on ‘myDocs’ -> New -> String Value. Give the string value as '
URL Protocol’.
You
need to add the value of ‘Default’ to "URL : myDocs Protocol"
Now
you need to add two new keys ‘DefaultIcon and shell’ to ‘myDocs’.
Right
click on myDocs -> New -> Key. Give the key value as ‘DefaultIcon’.
Right
click on myDocs -> New -> Key. Give the key value as ‘shell’.
The
name of the first key under the shell key should be an action verb, such as
open. Under this key, a command key or a DDEEXEC key indicate how the handler
should be invoked. The values under the command and DDEEXEC keys describe how
to launch the application handling the new protocol.
Right
click on shell -> New -> key. Give the key name as ‘open’.
Give
new key named ‘command’ under the key ‘open’.
Right
click on open -> New -> key. Give the key name as ‘command’.
Following
is the complete tree structure.
Update
the (Default) value field of the command key like below.
"C:\Program
Files (x86)\Java\jdk1.8.0_102\bin\java.exe" "C:\Users\I335077\Documents\Study\Miscellaneous\examples\URIOpen"
"%1"
When
user clicks on ‘myDocs:someURL’, it launch the application URIOpen.
For
example, Open run prompt and type ‘mydocs:http://google.com’, it opens
google.com in browser.
No comments:
Post a Comment