在Silverlight中,有没有办法在浏览器中运行时启动生成的文件?

时间:2011-01-24 16:54:02

标签: silverlight

在普通的HTML浏览器中,如果我点击文件的链接,我会选择保存或运行它。

在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;

是否可以提示用户打开此文件,以便他们不必打开Windows资源管理器,查找该文件并双击它?

1 个答案:

答案 0 :(得分:3)

简短回答:不,那是不可能的 说明:Silverlight是一种客户端技术,因此访问本地计算机的可能性可能是严重的安全漏洞(只记得ActiveX以及与之相关的所有安全问题)。 使用Silverlight从本地计算机启动某些东西的一种方法是启动你的SL 4(不幸的是只有SL 4支持所有这些东西)应用程序在浏览器之外提升信任。在这种情况下,可以使用COM访问文件系统并启动应用程序 例如:

 using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
 {
  shell.Exec("calc");
 }