2012-02-16 14 views
9

सी ++ में, system() और shellexecute() के बीच मुख्य अंतर क्या हैं?सिस्टम बनाम शैलएक्सक्यूट - मतभेद?

मुझे किस स्थिति में system() और shellexecute() का उपयोग करना चाहिए?

+2

'ShellExecute' के पास C++ से कोई लेना देना नहीं है। – ildjarn

+0

सिस्टम मानक है, शेलेक्सक्यूट नहीं है, पूर्व – 111111

+1

@ 111111 का उपयोग करें आप ऐसा क्यों कहते हैं? मान लीजिए कि आप ऐसे कोड लिख रहे थे जो विंडोज़ पर चल रहे थे जो उपयोगकर्ताओं के डिफ़ॉल्ट ब्राउज़र में यूआरएल खोलना चाहते थे? निश्चित रूप से 'ShellExecute' सही समाधान है। –

उत्तर

7

मानक सी ++ में shellexecute जैसी कोई चीज़ नहीं है। तो कोई फर्क नहीं पड़ता है।

Win32 समारोह ShellExecute नहीं है, लेकिन है कि एक Win32 समारोह, नहीं एक सी ++ system जैसे मानक सुविधा नहीं होती।

ShellExecutesystem से एक अलग बात करता है। system कमांड लाइन पर कमांड दर्ज करने के बराबर (अधिक या कम) है। ShellExecute फ़ाइल पर डबल क्लिक करने के बराबर है (या दाएं क्लिक करके और सूची से "क्रिया" का चयन करना)।

उनके पास वास्तव में कुछ भी सामान्य नहीं है।

+0

धन्यवाद, मुझे मिल गया। – xRed

+0

मुझे लगता है कि यदि आप 'सिस्टम' नियंत्रण कहते हैं तो प्रोग्राम पर वापस नहीं आ जाता है जब तक कि निष्पादन पूरा नहीं हो जाता है, जबकि 'ShellExecute' पूरा होने की प्रतीक्षा नहीं करता है। –

+4

'शैलएक्सक्यूट' वास्तव में एक बहुत शक्तिशाली काम है जो कई चीजें कर सकता है। इसकी शक्ति की कुंजी पैरामीटर के रूप में "क्रिया" निर्दिष्ट करने की क्षमता है, जो कार्य को बताती है कि कौन सी कार्रवाई करने के लिए। इस प्रकार इसे किसी विशेष तरीके से व्यवहार करने के रूप में वर्णित करने के लिए कुछ हद तक गलत है, क्योंकि इसे विभिन्न तरीकों से व्यवहार करने का निर्देश दिया जा सकता है। यह निश्चित रूप से, इसकी शक्ति और उपयोगिता के लिए महत्वपूर्ण है। Win32 कोड लिखते समय, 'ShellExecute' को हमेशा' system' पर प्राथमिकता दी जानी चाहिए। –

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