尝试的解决方案:
1)使用JavaScript的ActiveXObject:用户只需单击按钮/链接并启动其计算机上安装的比较工具即可.但它只适用于Internet Explorer,所以我们不能这样做.
参考:How to run an external program, e.g. notepad, using hyperlink?
2)使用Java Applet:由于安全原因,浏览器中嵌入的applet不允许访问本地文件系统,它将引发“访问控制异常”.因此,我们也不能同意这一点.
参考:Why is my applet throwing an AccessControlException?
3)使用协议处理程序:我们可以设置自定义URL协议来触发程序.就像我们使用mailto:user@email.com语法创建电子邮件链接一样,这将自动在Windows上启动Outlook. “mailto”是Windows注册表中的预定义协议.
类似地,我们创建了自己的协议,在注册表中说“launchCompareTool”,并且能够启动任何应用程序,如WinMerge或BeyondCompare.但是,我们无法将左侧和右侧文件路径作为参数传递给应用程序.可能是启动的应用程序需要期望这些参数.
参考:http://www.dreamincode.net/forums/topic/220444-run-program-from-server-on-client-computer/
http://msdn.microsoft.com/en-us/library/aa767914%28v=vs.85%29.aspx#app_reg
与“mailto”协议不同,后者将“正文”和“主题”参数传递给了解它们的邮件客户端(如Outlook).这些比较工具没有可以从协议传递的参数.
还有另一种方法可以满足这一要求吗?
谢谢,
阿卜杜勒
安舒尔梅拉