2010-05-06 20 views
5

Necesito iniciar una aplicación OOB de Silverlight a través de una aplicación WinForms existente (usando System.Diagnostics.Process para ejecutar sllauncher.exe). Esperaba que hubiera alguna manera de hacer que sllauncher.exe aceptara y pasar args de línea de comando a la aplicación OOB, pero no pude resolverlo.Pasar argumentos de línea de comando a la aplicación OOB Silverlight 4

Respuesta

4

No hay una API proporcionada por Silverlight para obtener acceso a los argumentos de la línea de comandos.

Aquí es donde WPF (y quizás click-once) sería una mejor opción.

O considere almacenar los "datos" necesarios para pasarlos en un archivo local al que pueda acceder la aplicación Silverlight cuando se inicie.

0

yah su posible en Silverlight

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

Puede solucionar esto mediante el paso de una URL para sllauncher.exe 's /origin parámetro, por ejemplo .:

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

En su código de Silverlight, se puede acceder al valor del parámetro /origin través

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)

Desafortunadamente, debido a que el URI es una file:/// URI, los parámetros de consulta no son almacenado en Source.QueryString. Esto también podría crear oportunidades, sin embargo, para "abuso": mi experiencia limitada es que sllauncher se iniciará si lo que se pasa a /originalgo como parece una ruta o URI.

Cuestiones relacionadas