既存の WinForms アプリケーション (を使用System.Diagnostics.Process
して実行sllauncher.exe
) を介して Silverlight 4 OOB アプリを起動する必要があります。コマンド ライン引数を受け入れて OOB アプリケーションに渡す何らかの方法があることを期待していsllauncher.exe
ましたが、わかりませんでした。
3 に答える
コマンドライン引数にアクセスするための API が Silverlight によって提供されることはありません。
これは、WPF(およびおそらくクリックワンス)がより良いオプションになる場所です。
または、Silverlight アプリケーションの起動時にアクセス可能なローカル ファイルに、渡す必要のある「データ」を格納することを検討してください。
sllauncher.exe
の/origin
パラメータにURL を渡すことで、これを回避できます。
sllauncher.exe /overwrite /emulate:c:\temp\Hello.xap /origin:c:\temp\Hello.xap?key=value
.
/origin
Silverlight コードでは、次の方法でパラメーターの値にアクセスできます。
Application.Current.Host.Source.OriginalString
// file:///C:/temp/Hello.xap%3Fkey=value
(msdn: http://msdn.microsoft.com/en-us/library/system.windows.interop.silverlighthost.source(v=vs.96).aspx )
残念ながら、URI は URI であるためfile:///
、クエリ パラメータは に格納されませんSource.QueryString
。ただし、これは「悪用」の機会を生み出す可能性もあります-私の限られた経験では、渡されたものがパスまたはURIのように見えるsllauncher
場合に開始されます。/origin
シルバーライトなら可能です
dynamic cmd=AutomationFactory.CreateObject("Shell.Application");
cmd.ShellExecute(@path_of_ur_exe,null,null,null,1);