Due to high security risk, you cannot do this without user action in the modern browsers. You could in IE6 with WScript.Shell, but not anymore. "User action" in this case is actually installing something on client side. So you can actually make it work with ActiveX, Java, etc, but it has to be something installed on client side before invoking it.
But this is really an interesting and clear solution: use protocol handler. See here:
http://www.openwinforms.com/run_exe_from_javascript.html[
^]