2012-03-07 38 views
30

Tôi có một ứng dụng WPF C#, mà tôi phải chuyển đối số dòng lệnh. Đối số thực sự là một URL mà tôi phải sử dụng trong ứng dụng của mình?Đối số dòng lệnh trong ứng dụng C#

Các đối số dòng lệnh này được chuyển trong WPF C# như thế nào, để ứng dụng có thể lấy url trong khi khởi chạy?

+1

Hãy xem http://msdn.microsoft.com/en- chúng tôi/thư viện/aa972153 (v = vs.90) .aspx hoặc google cho WPF comm và đối số dòng – Joe

+3

FWIW, Googling cho "đối số dòng lệnh wpf", 4 liên kết hàng đầu là tất cả để stackoverflow, bao gồm cả này, đó là cách tôi hạ cánh ở đây. – cdkMoose

Trả lời

55

Trong App.xaml.cs bạn

class App : Application 
{ 
    //Add this method override 
    protected override void OnStartup(StartupEventArgs e) 
    { 
     //e.Args is the string[] of command line argruments 
    } 
} 
+0

Vì vậy, điều đó có nghĩa là tôi sẽ phải làm điều này trong App.xaml và không phải trong 'MainWindow.xaml' vv. – Cipher

+16

Nếu sử dụng trong MainWindow.xaml.cs trực tiếp, sau đó theo đề nghị của những người khác, Environment.GetCommandLineArgs() – linquize

+0

Có cách nào để vượt qua và kiểm tra các đối số dòng lệnh cho ứng dụng của tôi từ trong Visual Studio, và không cố gắng để lauchứng dụng từ bên ngoài? – Cipher

0

Bạn có thể vượt qua đối số như "no-WPF" ứng dụng C# thông qua dòng comman. Sự khác biệt là điểm vào ứng dụng. Trong WPF là App.xaml.cs. Vì vậy, bạn có trong tập tin này, bạn có thể chọn lập luận theo cách này:

class App : Application 
{ 
    protected override void OnStartup(StartupEventArgs e) 
    { 
     //e.Args represent string[] of no-wpf C# applications 
    } 
} 
26

Nó đã được đề cập bởi linquize trên, nhưng tôi nghĩ rằng nó là giá trị một câu trả lời của riêng nó, vì nó là đơn giản như vậy ...

Bạn chỉ có thể sử dụng:

string[] args = Environment.GetCommandLineArgs(); 

đó làm việc bất cứ nơi nào trong ứng dụng, không chỉ ở App.xaml.cs

Các vấn đề liên quan