2017년 6월 11일 일요일

WPF Tutorial 강좌 번역 #9 - Command-line parameters in WPF

source(출처) - http://www.wpf-tutorial.com/wpf-application/command-line-parameters/

WPF Tutorial 강좌 번역 #9

WPF의 명령 줄 매개 변수


명령 줄 매개 변수는 시작하려는 응용 프로그램에 매개 변수 집합을 전달하여 어떻게 든 영향을 줄 수있는 기술입니다. 가장 일반적인 예는 애플리케이션을 특정 파일 (예 : 편집기에서. 시작 메뉴에서 실행을 선택하거나 [WindowsKey-R]을 눌러 Windows의 기본 제공 메모장 응용 프로그램을 사용하여 직접 시도 할 수 있습니다.

notepad.exe c:\Windows\win.ini

이렇게하면 win.ini 파일이 열리면서 메모장이 열립니다. 시스템에 맞게 경로를 조정해야 할 수도 있습니다. 메모장은 하나 또는 여러 개의 매개 변수를 찾고이를 사용하므로 응용 프로그램이 동일하게 수행 할 수 있습니다!

명령 줄 매개 변수는 App.xaml 기사에서 구독 한 Startup 이벤트를 통해 WPF 응용 프로그램에 전달됩니다. 이 예제에서 동일한 작업을 수행 한 다음 전달 된 값을 메소드 인수를 통해 사용합니다.
<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>
StartupUri 속성을 대체하여 Startup 이벤트에 가입하면됩니다. 이벤트는 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는 여기서 우리가 사용하는 것입니다. 응용 프로그램 시작 이벤트로 e라는 이름으로 전달됩니다. Args는 문자열 배열입니다. 명령 줄 매개 변수는 공백으로 구분됩니다 (공백이 따옴표로 묶인 문자열 안에 있지 않은 경우).

명령 줄 매개 변수 테스트

위의 예제를 실행하면 명령 줄 매개 변수가 지정되지 않았으므로 아무 것도 발생하지 않습니다. 다행히도 Visual Studio를 사용하면 응용 프로그램에서이를 쉽게 테스트 할 수 있습니다. 프로젝트 메뉴에서 "[프로젝트 이름] 속성"을 선택하고 명령 줄 매개 변수를 정의 할 수있는 디버그 탭으로 이동하십시오. 다음과 같이 보일 것입니다 :


애플리케이션을 실행하면 매개 변수에 응답하는 것을 볼 수 있습니다.

물론, 그 메시지는 대단히 유용하지 않습니다. 대신 메인 윈도우의 생성자에 전달하거나 다음과 같이 공용 공개 메소드를 호출 할 수 있습니다.
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();
                        //OpenFile () 메소드는 당신이 무엇을 할 수 있는지에 대한 예제 일뿐입니다.
                        //매개 변수. 메서드는 MainWindow 클래스에서 선언해야합니다.
                        //전달 된 파일 경로를 처리하기 위해 다양한 메소드를 사용할 수 있습니다
                        if(e.Args.Length == 1)
                                wnd.OpenFile(e.Args[0]);
                        wnd.Show();
                }
        }
}
Command-line의 가능성

이 예에서는 정확히 하나의 인수가 있는지 테스트하고, 그렇다면 인수를 파일 이름으로 사용합니다.
현실 세계의 예에서 여러 가지 인수를 수집하고 옵션을 위해 사용할 수도 있습니다.
특정 기능을 켜거나 끕니다.
진행해야 할 정보를 수집하는 동안 전달 된 전체 인수 목록을 반복함으로써이 작업을 수행 할 수 있지만이 문서의 범위를 벗어납니다.




댓글 없음:

댓글 쓰기