2009-10-05 6 views
12

मुझे एक विंडोज़ फॉर्म एप्लिकेशन चाहिए जिसमें यूआई होगा, लेकिन मैं इसे कुछ पैरामीटर के साथ कमांड लाइन से चलाने के लिए चाहता हूं, संभवतः /hide या /visible=false विकल्प भी।सी # - क्या विंडोज़ फॉर्म्स एप्लीकेशन बनाना संभव है जो पैरामीटर के साथ कमांड लाइन से चलाया जा सकता है?

कमांड लाइन पैरामीटर में पढ़ने के लिए कैसे संभव है? और तदनुसार समायोजित करें?

उत्तर

27

आप इस डिफ़ॉल्ट मुख्य हस्ताक्षर को बदलते हैं:

[STAThread] 
static void Main() 
इस के लिए

:

[STAThread] 
static void Main(String[] args) 

आप एक सामान्य सांत्वना app से जैसे आप कमांडलाइन चर का उपयोग कर सकते, या यदि आप उन्हें कहीं और से एक्सेस करना चाहते हैं तो आप इसका उपयोग कर सकते हैं:

System.Environment.GetCommandLineArgs(); 
+0

हां, यह पहली विधि है जिसे मैंने कुछ समय पहले किसी मित्र के स्पष्टीकरण में उपयोग किया था। प्रश्न के दूसरे भाग का जवाब देने के लिए +1 – Kawa

2

हां, इसे सामान्य विंडोज ऐप प्रोजेक्ट के रूप में प्रोजेक्ट बनाने के लिए काम करना चाहिए। फिर विंडो लॉन्च करने से पहले प्रोग्राम.cs में, कमांड लाइन तर्क प्राप्त करने के लिए Environment.GetCommandLineArgs() पर कॉल करें और जो भी आप चाहते हैं उसे करने के लिए उन्हें पार्स करें।

8
[STAThread] 
static void Main(string[] args) 
{ 
    if (args.Length == 0) 
    { 
     // Run the application in a windows form 
     Application.Run(new MainForm()); 
    } 
    else 
    { 
     // Run app from CLI 
     Console.WriteLine(DoStuff(args)); 
    } 
}
+1

+1। आप WriteLine के अंत में एक ब्रैकेट खो रहे हैं (साथ ही, मुझे नहीं लगता कि आप विंडोज़ फॉर्म एप्लिकेशन में कंसोल पर लिख सकते हैं। –

+0

आप सही हैं कि आप Console नहीं कर सकते हैं। Winforms एक Winforms ऐप के लिए। बिंदु मेरे उत्तर का यह है कि आपको विंडफॉर्म ऐप बनाने की आवश्यकता नहीं है, आप एक निष्पादन योग्य बना सकते हैं जो इसे कैसे लागू किया जाता है, इस पर निर्भर करता है कि एक फॉर्म या कमांड लाइन के रूप में चलाया जाएगा। –

+0

मैंने अभी इसका परीक्षण किया है और टेक्स्ट के लिए कोई कमांडविंडो खुला नहीं है , मुझे लगता है कि यह comamndline विंडो स्टार्टअप करने के लिए एक कमांड गुम है। –

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