2011-01-24 1 views
1

通常のHTMLブラウザでは、ファイルへのリンクをクリックすると、そのファイルを保存または実行するオプションが表示されます。彼らは、Windowsを開放する必要がないように、このファイルを開くを促すSilverlightでは、ブラウザ内で実行中に生成されたファイルを起動する方法はありますか?

SaveFileDialog sfd = new SaveFileDialog { Filter = "MyFileExt files (*.myFileExt)|*.myFileExt" }; 
    Stream stream = sfd.OpenFile(); 
    StreamWriter writer = new StreamWriter(stream); 
    writer.Write(myFileString); 
    writer.Flush(); 
    writer.Close(); 
    sfd = null; 

ことが可能です:私は、ファイルを生成し、次のコードを使用して、それを保存することができますSilverlightのでは

エクスプローラ、ファイルを探してダブルクリックしますか?

+2

あなたがそれを行うことができれば、私は(私はそうは思いません)分かりませんが、あなたはHyperlinkBut​​tonを使用してNavigateUriを設定することで、似たような経験を得ることができます。私の場合、NavigateUriは、ファイルを作成し、コンテンツタイプなどを設定する、私の(MVC)Webアプリケーション内のメソッドを指しています。 –

答えて

3

短い答え:いいえ、それは不可能です。
説明:Silverlightはクライアント側の技術であるため、ローカルコンピュータにアクセスする可能性があります。重大なセキュリティ違反(ActiveXとそれに関連するすべてのセキュリティ問題を覚えておいてください)。
Silverlightを使用してローカルコンピュータから何かを起動する1つの方法は、昇格した信頼関係であなたのSL 4(残念なことにSL 4だけがすべてのものをサポートします)アプリケーションをブラウザから起動することです。その場合、COMを使用してファイルシステムにアクセスし、アプリケーションを起動することができます。たとえば

using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell")) 
{ 
    shell.Exec("calc"); 
} 
関連する問題