i don't know what everyone is tralking about when they say you can't.
simply associate the exe with a made-up mime type, and open that mimetype to spawn the exe on-demand.
for example. run this in the firebug console:
you then browse to the exe you want to run, and remember to "do this automatically from now on"...
now, every time you run the snip, the exe you selected will execute.
if you want to talk back to js, you need to write to a file using jsonp format and inject a script tag pointing to the local path in your document. i know this works in firefox, not usre about other browsers.
firefox will also take the data you pass in the window.open() call and store it in a temp file. the path of that temp file is passed as the sole argument to your exe. keep that in mind if your exe behaves unexpectedly. for example, if i choose notepad in the save/open dialog resulting from the above code, it will show "12345" in notepad when it opens because i called notepad with an argument of the temp file path. note the actual filename is random and unpredictable...