2010-05-06 4 views
5

Ich muss eine Silverlight 4 OOB-Anwendung über eine vorhandene WinForms-Anwendung starten (unter Verwendung von System.Diagnostics.Process, um sllauncher.exe auszuführen). Ich hatte gehofft, dass es einen Weg geben würde, sllauncher.exe zu akzeptieren und Befehlsargumente an die OOB-Anwendung weiterzugeben, aber ich konnte es nicht herausfinden.Übergeben von Befehlszeilenargumenten an OOB Silverlight 4-Anwendung

Antwort

4

Es gibt keine API, die von Silverlight bereitgestellt wird, um auf die Befehlszeilenargumente zuzugreifen.

Hier ist WPF (und vielleicht einmal klicken) eine bessere Option.

Oder erwägen Sie, die "Daten" zu speichern, die in einer lokalen Datei übergeben werden müssen, auf die die Silverlight-Anwendung beim Start zugreifen kann.

0

yah seine mögliche in Silver

dynamic cmd=AutomationFactory.CreateObject("Shell.Application"); 
cmd.ShellExecute(@path_of_ur_exe,null,null,null,1); 
1

Sie können, indem man eine URL sllauncher.exe ‚s /origin Parameter dieses Problem umgehen, z.B .:

sllauncher.exe /overwrite /emulate:c:\temp\Hello.xap /origin:c:\temp\Hello.xap?key=value.

In Silverlight-Code, können Sie den Wert des /origin Parameter über

Application.Current.Host.Source.OriginalString 
// file:///C:/temp/Hello.xap%3Fkey=value 

zugreifen (Msdn: http://msdn.microsoft.com/en-us/library/system.windows.interop.silverlighthost.source(v=vs.96).aspx)

Leider, denn die URI ein file:/// URI ist, sind die Abfrageparameter nicht gespeichert in Source.QueryString. Dies kann jedoch auch Möglichkeiten für "Missbrauch" schaffen - meine begrenzte Erfahrung ist, dass sllauncher startet, wenn was an /originetwas aussieht wie ein Pfad oder URI aussieht.

Verwandte Themen