ASP.net Web サイトを介して別のローカル アプリケーション (C# を使用して開発されたアプリケーション) を実行し、ローカル アプリケーションにパラメーター (名前、ソース ファイルなど) を送信するにはどうすればよいですか?
(これにはセキュリティリスクがあることを理解していますが、提案を検討します) よろしくお願いします。
ASP.net Web サイトを介して別のローカル アプリケーション (C# を使用して開発されたアプリケーション) を実行し、ローカル アプリケーションにパラメーター (名前、ソース ファイルなど) を送信するにはどうすればよいですか?
(これにはセキュリティリスクがあることを理解していますが、提案を検討します) よろしくお願いします。
Skype のように独自の URL プロトコルを処理できます。
phone://123546
localapp://data
次にリンクを作成します
<a href="localapp://data">Open App</a>
またはサーバー側でリダイレクトを試みます
Response.Redirect("localapp://data");
例:
ローカル アプリケーション (c:\localapp.exe):
using System;
class LocalApplication
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(args[0]);
Console.ReadLine();
}
}
レジストリ:
HKEY_CLASSES_ROOT
localapp
(Default) = "URL:Local App"
URL Protocol = ""
shell
open
command
(Default) = "c:\localapp.exe" "%1"
HTML:
<a href="localapp://Hello">Start LocalApp</a>
サーバーまたはクライアントでローカル プログラムを起動するということですか?
サーバー上でプロセスを開始し、アクセスする必要がある情報についてコマンド ライン パラメータを渡すことができます。
これは、最新のブラウザのセキュリティ制限により不可能です。
ユーザーを IE に制限できる場合 (非常に悪い習慣)、ActiveX コントロールはそれを行うことができます。ここに小さなコードスニペットがあります。
<SCRIPT Language="JScript">
function runcmd() {
File="cmd.exe";
WSH=new ActiveXObject("WScript.Shell");
WSH.run(File);
}
</SCRIPT>