要件: ボタンまたはリンクを介して Web ページから外部比較ツール (BeyondCompare や WinMerge など) を起動したい。テキスト ファイルのパスは、起動時にツールに渡される必要があります。ツールはそれらを理解し、左側と右側の比較パネルで開きます。
試した解決策:
1) JavaScript の ActiveXObject の使用: これにより、ユーザーはボタン/リンクをクリックするだけで、マシンにインストールされている比較ツールを起動できます。しかし、これは Internet Explorer でしか機能しないため、これを使用することはできません。
参照:ハイパーリンクを使用してメモ帳などの外部プログラムを実行する方法は?
2) Java アプレットの使用: セキュリティ上の理由により、ブラウザに埋め込まれたアプレットはローカル ファイル システムへのアクセスが許可されておらず、「アクセス制御例外」がスローされます。したがって、これも一緒に行くことはできません。
参照:アプレットが 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
"body" および "subject" 引数がメール クライアント (Outlook など) に渡され、それらを理解する "mailto" プロトコルとは異なります。これらの比較ツールには、プロトコルから渡すことができる引数がありません。
この要件を満たす別の方法はありますか?
ありがとう、アブドゥル