【问题标题】:Launch Silverlight Out of Browser App Programmatically以编程方式从浏览器应用程序中启动 Silverlight
【发布时间】:2013-01-02 17:14:40
【问题描述】:

我正在尝试使用 SLLAUNCHER.EXE 启动已安装的 SL Out-of-Browser 应用程序。运行以下命令后,桌面上的 MyApp 启动图标就消失了。如果我在没有覆盖开关的情况下尝试它,则不会发生任何事情。

我以这篇文章为指导:

http://timheuer.com/blog/archive/2010/03/25/using-sllauncher-for-silent-install-silverlight-application.aspx

任何建议将不胜感激。

    static void Main(string[] args)
    {
        string sllauncherPath = string.Format("{0}\\Microsoft Silverlight\\sllauncher.exe",
       Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));

        string originUri = @"http://localhost:52878/ClientBin/MyApp.xap";
        string xap = "MyApp.xap";
        string arg = string.Format(@"/emulate:""{0}"" /origin:""{1}""  /overwrite", xap, originUri);

        var startInfo = new ProcessStartInfo
        {
            CreateNoWindow = false,
            UseShellExecute = false,
            RedirectStandardOutput = false,
            FileName = sllauncherPath,
            Arguments = arg
        };

       var process = Process.Start(startInfo))

    }

【问题讨论】:

  • 它有效还是有问题?
  • 我正试图让同样的事情发挥作用。 Silverlight 4 中似乎存在错误,导致 sllauncher.exe 静默失败。无论如何,我会继续研究它。也许有一个解决方法。 connect.microsoft.com/VisualStudio/feedback/details/575052/…
  • 我在我的应用程序中尝试了完全相同的代码,希望我可以简单地使用外部应用程序以编程方式启动安装在同一个盒子上的 OOB silverlight 应用程序并获得相同的结果。我的 OOB 应用程序的桌面快捷方式消失了,并且确实显示了 OOB silverlight 的窗口。我在我的托管版本中传递了 init 参数,这导致它不加载 OOB,所以我还没有 100% 按预期加载它,但是一个窗口确实会在窗口标题栏中弹出一个带有预期标题的窗口。

标签: silverlight


【解决方案1】:

您使用的是 64 位机器吗? http://social.msdn.microsoft.com/Forums/en-US/silverlightcontrols/thread/abedb9dc-d471-4d82-8a20-45f98671cac9

也可以提供帮助: 这就是我在检测到更新完成后从我的 SL OOB 应用程序中重新启动的方式:

''put this in your App.xaml.vb[.cs] and call DoRestart
Public Shared Sub DoRestart()
    StartAgain()
    Application.Current.MainWindow.Close()
End Sub
Public Shared Sub StartAgain()
    If Not [String].IsNullOrEmpty(GetSLLauncherCommand) Then
        Using shell = AutomationFactory.CreateObject("WScript.Shell")
            shell.Run(GetSLLauncherCommand)
        End Using
    End If
End Sub
Public Shared Function GetSLLauncherCommand() As String
    Dim desktopPath As String
    Dim SLLauncherCommand As String = ""
    Using wShell As Object = AutomationFactory.CreateObject("WScript.Shell")
        desktopPath = wShell.SpecialFolders("Desktop")
    End Using
    Using shell As Object = AutomationFactory.CreateObject("Shell.Application")
        Dim DesktopFolder As Object = shell.[NameSpace](desktopPath)
        Dim DesktopItems As Object = DesktopFolder.Items()
        For Each item In DesktopItems
            If item.IsLink Then 'this is a shurtcut
                Dim fileName As String = item.Name.ToLower()

                If fileName.Contains("!!!<PART OF YOUR SL APPS SHORCUT NAME>!!!!") Then
                    Dim link = item.GetLink()
                    SLLauncherCommand = """" & Convert.ToString(link.Path) & """ " & Convert.ToString(link.Arguments)
                End If
            End If
        Next
    End Using
    Return SLLauncherCommand
End Function

您可以尝试为您的非 SL 应用调整代码!

THT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多