2011-04-23 14 views
6

Używam Process.Start z mojej strony internetowej, aby otworzyć aplikację formularza okna zrobiłem w języku C#.Rozpocznij proces z parametrami

Chcę wysłać do aplikacji moją nazwę użytkownika.

Jak mogę to zrobić?

+1

Jeśli używasz 'Process.Start()' ze strony internetowej, otworzy ona tę aplikację na twoim * serwerze *. Czy to naprawdę chcesz? – svick

+0

To projekt szkolny, wiem, że nie powinno tak być, ale to jest to, o co nas teraz proszą. –

Odpowiedz

1

Można to wykorzystać:

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

A jak uzyskać dostęp do nazwy użytkownika w moich aplikacjach? –

+0

To nie zadziała, ponieważ nie będzie pliku o nazwie 'MyExe.exe" nazwa użytkownika "'. – svick

+1

Po prostu użyj 'string myUsername = Environment.GetCommandLineArgs() [1] .ToString();' który da exaxtly to, co wstawiłeś jako parametr powyżej. –

5

Process.Start() ma kilka przeciążeń, one of them jest do określania argumentów wiersza polecenia wraz ze ścieżką do pliku wykonywalnego.

Na przykład:

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

OK, ale znowu, jak mam uzyskać dostęp do parametru z moich aplikacji? –

+0

@ Or, tak samo sugerował Mercurial, używając ['Environment.GetCommandLineArgs()'] (http: // msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx). – svick

6

Można to zrobić poprzez przypisanie argumentów informacji startowym, np:

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

Jeśli proces nie rozpocznie warto sprawdzić uprawnienia, o ile Jestem świadomy, że kod uruchomiony w IIS nie może tego robić.