2011-04-23 82 views
6

我使用Process.Start从我的网站打开我在c#中创建的窗体应用程序。开始一个带参数的过程

我想发送到应用程序我的用户名。

那么我该怎么做呢?

+1

如果您在网站上使用Process.Start(),它将在您的*服务器*上打开该应用程序。那真的是你想要的吗? – svick 2011-04-23 20:06:48

+0

这是一个学校项目,我知道它不应该是这样,但这就是他们要求我们现在要做的。 – 2011-04-23 20:10:01

回答

1

您可以使用此:

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

如何在我的应用程序上访问用户名? – 2011-04-23 20:08:57

+0

这将不起作用,因为不会有名为“MyExe.exe”的用户名“'”的文件。 – svick 2011-04-23 20:11:27

+1

只需使用'string myUsername = Environment.GetCommandLineArgs()[1] .ToString();'这将为您提供以上参数。 – 2011-04-23 20:12:40

5

Process.Start()有几个重载,one of them是与可执行文件路径沿着指定命令行参数。

例如:

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

好的,但是,我怎么从我的应用程序中访问参数? – 2011-04-23 20:12:35

+0

@或者Mercurial建议使用['Environment.GetCommandLineArgs()'](http:// msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx)。 – svick 2011-04-23 20:16:47

6

您可以通过在开始信息分配参数做到这一点,如:

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

如果你的进程无法启动,你可能要检查的权限,只要我知道在IIS上运行的代码是不允许的。