2011-04-23 6 views
6

Tôi đang sử dụng quy trình. Bắt đầu từ trang web của tôi để mở ứng dụng biểu mẫu cửa sổ tôi đã thực hiện bằng C#.Bắt đầu quy trình với thông số

Tôi muốn gửi đến ứng dụng tên người dùng của mình.

Vậy làm cách nào tôi có thể làm điều đó?

+1

Nếu bạn đang sử dụng 'Process.Start()' từ một trang web, nó sẽ mở ứng dụng đó trên máy chủ * của bạn *. Đó có thực sự là điều bạn muốn không? – svick

+0

Đó là một dự án trường học, tôi biết nó không nên như thế này nhưng đó là những gì họ yêu cầu chúng tôi làm ngay bây giờ. –

Trả lời

1

Bạn có thể sử dụng này:

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

Và làm cách nào để truy cập tên người dùng trên các ứng dụng của tôi? –

+0

Thao tác này sẽ không hoạt động, bởi vì sẽ không có tệp nào được gọi là tên người dùng 'MyExe.exe". – svick

+1

Chỉ cần sử dụng 'string myUsername = Environment.GetCommandLineArgs() [1] .ToString();' sẽ cung cấp cho bạn exaxtly những gì bạn đưa vào như một tham số ở trên. –

5

Process.Start() có một số quá tải, one of them là để xác định các đối số dòng lệnh cùng với đường dẫn đến tập tin thực thi.

Ví dụ:

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

Ok nhưng một lần nữa, làm thế nào để truy cập tham số từ các ứng dụng của tôi? –

+0

@Or, giống như cách Mercurial gợi ý, sử dụng ['Environment.GetCommandLineArgs()'] (http: // msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx). – svick

6

Bạn có thể làm điều này bằng cách gán đối số trong thông tin bắt đầu, ví dụ:

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

Nếu quá trình của bạn thất bại trong việc bắt đầu bạn có thể muốn kiểm tra quyền, như xa như Tôi biết mã chạy trên IIS không được phép làm điều đó.