...and here's a version that actually works! (previous one just assigned
python, and not leo, to the file type).
{{{
<?xml version="1.0" encoding="utf-8"?>
<!-- Created by Leo (http://webpages.charter.net/edreamleo/front.html) -->
<?xml-stylesheet ekr_test?>
<leo_file xmlns:leo="http://www.leo-editor.org/2011/leo" >
<leo_header file_format="2"/>
<vnodes>
<v t="maphew.20130501121440.1885"><vh>Add Windows handler for .leo
files</vh></v>
</vnodes>
<tnodes>
<t tx="maphew.20130501121440.1885">@language python
@tabwidth -4
'''Tell Windows how to handle .leo files, enables double clicking on them
to open.
To run: in Leo make this the active node and press [Ctrl-B] (execute-script)
It opens a command shell and uses `assoc` and `ftype` commands to inform
Windows
where python.exe and the Leo launch script is. It's the equivalent of:
assoc .leo=Leo.File
ftype Leo.File="B:\Python27\pythonw.exe"
"B:\apps\leo-editor\launchLeo.py" "%1" %*
Requires elevated User Account Control (UAC) priviliges.
See http://superuser.com/questions/88491/force-cmd-exe-to-run-as-admin/
'''
pyexe = g.sys.executable
leo = g.os_path_finalize_join(g.computeLeoDir(), '../launchLeo.py')
tmp = g.os.environ['TEMP']
assoc_cmd = 'assoc .leo=Leo.File'
ftype_cmd = 'ftype Leo.File="{0}" "{1}" "%1" %*'.format(pyexe, leo)
g.es(leo)
g.es(pyexe)
g.es(tmp)
g.es(assoc_cmd)
g.es(ftype_cmd)
from subprocess import Popen
Popen('start "Shell from Leo" cmd.exe /k "{0} && {1}"
'.format(assoc_cmd, ftype_cmd),
cwd=tmp, shell=True)
</t>
</tnodes>
</leo_file>
}}}
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.