2011-04-23 18 views
6

Estoy usando Process.Start desde mi sitio web para abrir una aplicación de formulario de Windows que hice en C#.Iniciar un proceso con los parámetros

Deseo enviar a la aplicación mi nombre de usuario.

Entonces, ¿cómo puedo hacer eso?

+1

Si está utilizando 'Process.Start()' desde un sitio web, se abrirá esa aplicación en su * servidor *. ¿Es eso realmente lo que quieres? – svick

+0

Es un proyecto de la escuela, sé que no debería ser así, pero eso es lo que nos piden que hagamos por el momento. –

Respuesta

1

Puede utilizar esta:

string username = "MyUsername"; 
Process.Start(Path.Combine("MyExe.exe" + " \"" + username + "\""); 
+2

¿Y cómo puedo acceder al nombre de usuario en mis aplicaciones? –

+0

Esto no funcionará, porque no habrá ningún archivo llamado 'MyExe.exe" username "'. – svick

+1

Simplemente use 'string myUsername = Environment.GetCommandLineArgs() [1] .ToString();' que le dará exactamente lo que puso como parámetro arriba. –

5

Process.Start() tiene varias sobrecargas, one of them es para especificar los argumentos de línea de comandos junto con la ruta de acceso al ejecutable.

Por ejemplo:

Process.Start("app.exe", "parameter(s)"); 
+0

Bien, pero de nuevo, ¿cómo accedo al parámetro desde mis aplicaciones? –

+0

@Or, de la misma manera que sugirió Mercurial, usando ['Environment.GetCommandLineArgs()'] (http: // msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx). – svick

6

Usted puede hacer esto mediante la asignación de los argumentos de información de arranque, por ejemplo:

var process = new Process 
     { 
      StartInfo = 
       { 
        FileName = processName, 
        Arguments = "-username=Alice" 
       } 
     }; 
process.Start(); 

Si el proceso no se inicia es posible que desee comprobar los permisos, por lo que Soy consciente de que el código que se ejecuta en IIS no puede hacer eso.

Cuestiones relacionadas