web-dev-qa-db-ja.com

ローカルWebページからプログラムを実行する

キオスクのエントリポイントとしてWebページを使用しようとしています。 htmlはローカルで実行されます。2つ必要です。

<a href="c:\Users\Admin\Documents">...

チャームのように機能します

そして..

<a href="c:\Program Files\Windows Live\Mail\wlmail.exe">...

(プログラムは単なる例であり、すべてのプログラムは同じです)

どちらが機能しますが..ファイルをダウンロードするように求められ、次にそれを開始するように求められます.. notepad.exeを開いたクリックアンドバムのように、これを直接行う方法はありますか?たぶんJavaアプレットを使用していますか?

ありがとうございました

感謝

編集:

リモートで実行できないことはわかっています。ローカルファイルについて話しています。ファイルはc:\ myhtml.htmlとしてアクセスされ、既にインストールされているファイルのみを開き、Webからは何も開きません。

7
0plus1

私があなたの質問を正しく理解した場合、あなたが望むものを得るのに最も近いのは、通常のアプリと同じようにブラウザウィンドウの外で実行されるHTMLアプリケーションである* .htaを使用することです。

<script type="text/javascript" language="javascript">
    function RunFile() {
    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
    }
</script>

ここでもう少し情報: http://www.kunal-chowdhury.com/2010/09/how-to-execute-local-file-using-html.html

8
oprimus001

これを実装する正しい方法は、Windowsでカスタムプロトコルを作成することです。 MSDNの記事の詳細 "URIスキームへのアプリケーションの登録"

3
Vadim Rapp

いいえ、これはセキュリティの問題です。リンクをクリックするだけでプロンプトなしでアプリを実行するとセキュリティリスクが発生する可能性があるため、ブラウザでは許可されていません。

Java WebStartやASP ClickOnce-アプリを多かれ少なかれ自動的にインストールし、アプリケーションに署名することも役立ちます-ユーザーが受け取るメッセージ怖くないように見えます。

1
Roman Goyenko

もちろん、これはセキュリティの問題です。しかし、それは問題ではありません。彼がそれをやりたい理由は明らかに別の問題です。

問題はまだ残っています:クライアント/サーバー側から外部プログラムを実行する方法は?

私はいくつかの手がかりを見つけました:

  • ActiveX:IEに固有なので、あまり良くありません。
  • Node.jsのようなサーバーサイドjavascriptフレームワーク:サーバーサイド?私もこのフレームワークを知りません... ^^ '、
  • ここでも私のドメインではなく、可能性を高めることができるクロスブラウザアドオン
  • Media Player Classicでは、彼にポートをリッスンさせ、これを使用して特定のコマンドURLを使用してプログラムを呼び出すことができます。これは非常に優れていますが、ソフトウェアに固有です。

他にもたくさんのクールなチュートリアルを見つけましたが、作業はかなり重いです。毎回、別のテクノロジーを発見して学ぶ必要があります。

1
Chicna

私があなたを理解していなかったら私を訂正してください。 Webページをローカル(http:\ 127.0.0.1)で実行していて、同じマシンでプログラムを実行する場合は、使用しているテクノロジによって異なります。たとえば、phpではexec()を使用できます。ユーザー入力でプログラムを実行しますが、サーバー側で実行されます。

1
Victor Delgado