Skip to content

Instantly share code, notes, and snippets.

@mitry
Created October 22, 2012 06:11
Show Gist options
  • Save mitry/3929945 to your computer and use it in GitHub Desktop.
Save mitry/3929945 to your computer and use it in GitHub Desktop.
UrlHandler - launch a program to handle URL Shortcut
<?xml version="1.0" encoding="windows-1251"?>
<job id="UrlHandler">
<?job error="True" debug="True" ?>
<runtime>
<description>UrlHandler - launch a program to handle URL Shortcut</description>
<unnamed name="url" helpstring="" many="false" required="true" />
<example>UrlHandler proto://params</example>
</runtime>
<resource id="local">C:\Program Files\Everything\Everything.exe</resource>
<resource id="local-params">-search</resource>
<resource id="nircmd">c:\usr\bin\NirCmd.exe </resource>
<resource id="nircmd-params"></resource>
<script language="JavaScript"><![CDATA[
if (!WScript.arguments.length || !WScript.Arguments.Unnamed(0)) WScript.Quit(!WScript.Arguments.ShowUsage());
var arg = decodeURIComponent(WScript.Arguments.Unnamed(0)).replace(/^"(.+)"$/g,'$1');
arg = arg.replace(/\/$/,'');
var parts = arg.match(/^(\w+):(?:\/\/)?(.+)$/);
var proto = parts && parts[1] && parts[1].toLowerCase();
if (parts && proto) {
var handler = getResource(proto);
WScript.CreateObject("Shell.Application").ShellExecute(handler, [getResource(proto + '-params'), parts[2]].join(' '));
// WScript.Echo(decodeURIComponent(WScript.Arguments.Unnamed(0)));
// WScript.Echo(handler, [getResource(proto + '-params'), parts[2]].join(' '));
} else {
WScript.Arguments.ShowUsage();
}
]]></script>
</job>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment