2012-08-01 8 views
27

मैं वर्तमान में एक एप्लीकेशन विकसित कर रहा हूं जो कुछ फ़ाइल मैनिपुलेशन करता है और मैं कंसोल के माध्यम से या यूआई के माध्यम से मैनिपुलेशन करने में सक्षम होना चाहता हूं (मैंने WPF चुना है)।तर्कों के आधार पर डब्ल्यूपीएफ कैसे शुरू करें

मैं काफी कहना चाहता हूँ: (छद्म)

if (Environment.GetCommandLineArgs().Length > 0) 
{ 
    //Do not Open WPF UI, Instead do manipulate based 
    //on the arguments passed in 
} 
else 
{ 
    //Open the WPF UI 
} 

मैं जैसे प्रोग्राम के रूप में WPF विंडो/आवेदन शुरू करने के कुछ ही अलग अलग तरीकों के बारे में पढ़ा है:

Application app = new Application(); 
app.Run(new Window1()); 

लेकिन मैं मैं पूरी तरह से यकीन नहीं करता कि मैं इसे कंसोल एप्लिकेशन में प्लग करना चाहता हूं।

क्या किसी के पास यह सर्वोत्तम तरीके या सिफारिशें हैं कि मैं इसे कैसे प्राप्त कर सकता हूं? मुख्य प्रसंस्करण कार्यक्षमता मैंने बनाए गए एक सहायक वर्ग में है। तो मूल रूप से मैं या तो एक स्थिर प्रारंभ विधि (जैसे मानक कंसोल एप्लिकेशन बनाता है) या यूआई में उत्तीर्ण तर्कों के आधार पर हेल्पर क्लास तक पहुंचने के लिए यूआई चाहता हूं।

उत्तर

75

एप्लिकेशन क्लास में एक ईवेंट "स्टार्टअप" है जिसका आप इसका उपयोग कर सकते हैं। यह आपको कमांड प्रॉम्प्ट के माध्यम से प्रदान किए गए तर्क प्रदान करता है।

App.xaml

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

App.xaml.cs

मुझे आशा है कि यह मदद मिलेगी: यहाँ MSDN से एक उदाहरण है।

+3

यह करने का यह सही तरीका है। Http://msdn.microsoft.com/en-us/library/system.windows.application.startup.aspx – Eugene

+5

ऊपर दिए गए सुझाव के अतिरिक्त, मेरा मानना ​​है कि यह ध्यान देने योग्य है कि आपको स्टार्टअपयूरी संपत्ति को हटाने की आवश्यकता है App.xaml अगर यह मौजूद है। यदि आप नहीं करते हैं, तो आप अपनी खिड़की के दो उदाहरण सामने आएंगे। – Tada

15

वहाँ 2 विकल्प आदेश पंक्ति तर्क
1) प्राप्त करने के लिए आप तर्क OnStartup में पढ़ना चाहते हैं कर रहे हैं। args की वैश्विक पहुंच के लिए यह अच्छा है।

अवहेलना App.xaml.cs में OnStartup और StartupEventArgs वर्ग के Args संपत्ति को देखो।

public partial class App : Application 
{ 
    protected override void OnStartup(StartupEventArgs e) 
    { 
     foreach (string arg in e.Args) 
     { 
      // TODO: whatever 
     } 
     base.OnStartup(e); 
    } 
} 

2) पर्यावरण ऑब्जेक्ट से तर्कों को पढ़ने का एक और आसान तरीका है।

Environment.GetCommandLineArgs();

यह भी प्रपत्र/पृष्ठ से की तरह आवेदन में कहीं से भी इस्तेमाल किया जा सकता।

संबंधित मुद्दे