TOC

This article has been localized into Polish by the community.

Aplikacja WPF:

Parametry cmd w WPF

Parametry przekazywane przy wywołaniu aplikacji z konsoli wiersza poleceń mają w pewien sposób wpłynąć na stan startowy aplikacji. Najpopularniejszy przykładem jest uruchomienie aplikacji ze wskazanym plikiem, np.: edytor tekstowy. Możesz sam spróbować uruchomić Notatnik poniższą komendą (Uruchom z menu Start lub skrótem klawiszowym Windows + R):

notepad.exe c:\Windows\win.ini

Ten przykład uruchomi Notatnik z plikiem win.ini (może być potrzeba dopasowania ścieżki do systemu). Notatnik przegląda swoje parametry i szuka wskazanych. Twoja aplikacja może zrobić to samo!

Parametry wiersza poleceń są przekazywane do aplikacji WPF przez event Startup, który jest subskrybowany w App.xaml. W przykładzie zrobimy to samo, a potem użyjemy przekazanych wartości jako argumenty metod. Na początek App.xaml:

<Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
			 Startup="Application_Startup">
    <Application.Resources></Application.Resources>
</Application>

Wszystko co tutaj robimy to subskrybujemy event Startup, zastępując atrybut StartupUri. Event jest zaimplementowany w App.xaml.cs:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

		private void Application_Startup(object sender, StartupEventArgs e)
		{
			MainWindow wnd = new MainWindow();
			if(e.Args.Length == 1)
				MessageBox.Show("Now opening file: \n\n" + e.Args[0]);
			wnd.Show();
		}
	}
}

StartupEventArgs jest tym czego potrzebujemy. Jest przekazywane do eventu Application Startup o nazwie e. Parametr posiada atrybut Args, który jest tablicą tekstów. Parametry wiersza poleceń oddzielone są spacjami, chyba że spacje są w cudzysłowie.

Testowanie parametrów wiersza poleceń

Jeżeli uruchomisz powyższy przykład nic się nie stanie, ponieważ nie został przekazany żaden parametr do wiersza poleceń. Na szczęście Visual Studio ułatwia nam testowanie takiej sytuacji w Twojej aplikacji. Z menu Projekt wybierz Opcje [Nazwa projektu] i Debug, gdzie możesz zdefiniować parametry wiersza poleceń. Powinno to wyglądać tak:

Spróbuj uruchomić aplikację i zobaczysz, że odpowiedziała na Twój parametr.

Oczywiście wiadomość nie jest bardzo przydatna. Jednakże możesz przekazać ją do konstruktora głównego okna lub wywołać publiczną metodą otwarcia jak poniżej:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

		private void Application_Startup(object sender, StartupEventArgs e)
		{
			MainWindow wnd = new MainWindow();
			// The OpenFile() method is just an example of what you could do with the
			// parameter. The method should be declared on your MainWindow class, where
			// you could use a range of methods to process the passed file path
			if(e.Args.Length == 1)
				wnd.OpenFile(e.Args[0]);
			wnd.Show();
		}
	}
}

Możliwości wiersza poleceń

W tym przykładzie sprawdziliśmy czy jest dokładnie jeden argument i jeżeli tak to użyliśmy go jako nazwy pliku. W prawdziwym świecie możesz mieć wiele argumentów, a nawet używać ich do ustawień, np.: przełączania dodatków lub trybów. Osiągnąłbyś to przez zapętlenie całej listy argumentów przekazanej podczas kolekcjonowanie informacji, lecz wykracza to poza ten artykuł.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!