要件
WPFアプリケーション内の特定のアイテムを表示するために、そのハイパーリンク上のID(別のアプリケーションによって事前にステージングされる)を送信する必要があるからです。私は、クエリ文字列パラメータAppID
を受け入れ、それを解析することができ、私はtest.hta
として保存して、次のHTMLを持って
をやったHTA - 私は行く-間、私が持ってクリックしたハイパーリンクやWPFアプリケーション(<code>WPF_App.exe</code>)の間として、この時点で、HTA、または何かを使用しようとしているハイパーリンクからWPFアプリケーションに渡すパラメータ
。その後、Wscript.Shellオブジェクトを使用して開始されているWPFアプリケーションに送信することができます:IEやWindowsのエクスプローラで、私はfile://our_network_share/some_folder/test.hta?AppID=100
を使用して、このHTAを呼び出すことができるにもかかわらず
を解決するには
<html><head>
<script language="VBScript">
Sub RunProgram(param)
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "\\our_network_share\some_folder\WPF_App.exe " & param
Me.Close
End Sub
</script>
<script language ="Javascript">
function callVB() {
var param = getParameterByName('AppID');
RunProgram(param);
}
function getParameterByName(name) {
var url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
</script>
</head>
<body onload="javascript:callVB()">
</body>
</html>
問題とWPFアプリケーションにIDを正しく渡します。このようにハイパーリンクからは機能しません。(リンクはCtrl + Kキーを使用してOutlookで作成し、Ctrlキーを押しながらクリックしてテストする必要があります。電子メール... Wordはまた、これの良いテストであり、これまでも失敗しています)、パラメータを提供しながら電子メールからこのHTAファイルにリンクする必要があります。これはできますか?そして、私はこのHTAにロックされていません、ちょうど私がこれまでに得た最も近いものでした。私は
を試してみた
物事私はどのようにすることができますpass command line arguments to an HTAを見てきましたが、クエリ文字列でHTAへのハイパーリンクからパラメータを渡す方法はありますか?クエリーストリングの理由は、これまでのところ、ハイパーリンクの中で、HTAファイル名とパラメータ、またはWPF名とパラメータの間のスペースを解決する方法が見えていないからです。 HTMLコード%20
を入れても機能せず、ファイルのリンクと引数の前後に引用符も入れません。たぶんこれは構文上の問題ですが、それが何であるかはわかりません。
ありがとうございますが、あなたは通常の電子メールのようにWebページへのハイパーリンクでこれを行うことができます。アプリがローカルの場合、HTAは同じ方法でリンクを解析できます。 'file:/// C:\ temp \ test.hta?AppID = 1'とし、その引数を渡して起動します(' WPF_App.exe'を同じフォルダに入れ、 'objShell.Run'を更新するとその場所へ)。ファイルをネットワーク共有( 'WFP_App.exe'と一緒に更新し、' objShell.Run'を更新)に置き、それを 'file:/// \\ our_network_share \ some_folder \ test.hta?AppID = 1'で参照するだけですIDはnullとして渡されます。アプリが起動し、IDがnullになります。 – vapcguy