taskmgr.exe विंडोज 7 द्वारा एक तर्क के साथ कहा जाता है


13

मैंने देखा कि जब मैं Ctrl+ Alt+ दबाता हूं Delऔर टास्क मैनेजर पर क्लिक करता हूं , विंडोज taskmgr.exe /3कमांड के रूप में कॉल करता है। कई वेबसाइटों का दावा है कि टास्क मैनेजर के पास कोई कमांड लाइन तर्क नहीं है।

टास्क मैनेजर प्रोसेस एक्सप्लोरर में प्रोसेस करता है

विंडोज इस तर्क को क्यों देता है?


इसके अलावा, इसमें एक और कम वज़न है LaunchTM.exe, %windir%\System32जो इसे और भी भ्रामक बनाता है क्योंकि मैं इसका पता नहीं लगा सका, अपनी Google खोज के आधार पर, इसके अस्तित्व के उद्देश्य और सामान्य रूप से इसके लिए क्या अच्छा है।

@ चिंगगिस LaunchTM.exe6 विंडोज 7 में कोई नहीं है, आप विंडोज 8 पर हैं मुझे लगता है। सुपरसुसर पर यहाँ इस बारे में एक नया प्रश्न क्यों नहीं बनाया जा रहा है ? ;)
मार्टिन ब्रौन

जवाबों:


13

विश्लेषण

जाहिरा तौर पर यह एक प्रलेखित व्यवहार नहीं है। मैंने कुछ परीक्षण किए, और अपने निष्कर्ष नोट किए:

  • टास्कबार पर राइट-क्लिक करें, और स्टार्ट टास्क मैनेजर पर क्लिक करें

    "C:\Windows\system32\taskmgr.exe" /4
    
  • प्रेस Ctrl+ Shift+ Esc

    taskmgr.exe /2
    
  • Ctrl+ Alt+ दबाएँ Delऔर स्टार्ट टास्क मैनेजर पर क्लिक करें

    taskmgr.exe /3
    
  • एक गैर-उन्नत टास्क प्रबंधक शुरू करें, और सभी उपयोगकर्ता बटन से शो प्रक्रियाओं पर क्लिक करें।

    "C:\Windows\system32\taskmgr.exe" /1
    
  • taskmgr.exeप्रारंभ मेनू खोज बार में टाइप या पेस्ट करें, और दबाएं Enter; प्रेस Win+ R, taskmgr.exeटेक्स्टबॉक्स में टाइप या पेस्ट करें , और दबाएं Enter; System32फ़ोल्डर में नेविगेट करें और taskmgr.exeनिष्पादन योग्य पर डबल-क्लिक करें ; सिस्टम कॉन्फ़िगरेशन उपयोगिता शुरू करें ( msconfig.exe), टूल टैब पर क्लिक करें, सूची से टास्क मैनेजर आइटम चुनें, और लॉन्च पर क्लिक करें ।

    "C:\Windows\system32\taskmgr.exe"
    
  • कमांड प्रॉम्प्ट खोलें, टाइप करें या पेस्ट करें taskmgr.exe, और दबाएँ Enter

    taskmgr.exe
    

टिप्पणियों

  • रिलीज़ पूर्वावलोकन तक विंडोज 8 के विकास चरण के दौरान चीजें इसी तरह से काम करती थीं। विंडोज विस्टा और पहले के ऑपरेटिंग सिस्टम अप्रभावित हैं।

  • निष्पादन योग्य एपीआई कार्यों (अर्थात् GetCommandLineWऔर CommandLineToArgvW) के एक जोड़े को आयात करता है जो कमांड लाइन तर्क को पुनः प्राप्त करने और पार्स करने के लिए उपयोग किया जाता है।

  • मैन्युअल रूप से ऊपर दिए गए किसी भी तर्क का उपयोग करके कार्यक्रम शुरू करने से कोई ध्यान देने योग्य प्रभाव नहीं पड़ता है।

अगर मुझे एक शिक्षित अनुमान लगाना था, तो मैं कहूंगा कि संख्यात्मक पैरामीटर का मतलब आंतरिक स्टार्टअप संकेतक होना था, संभवतः डिबगिंग उद्देश्यों के लिए उपयोग किया जाता था और फिर पीछे रह जाता था।


5
"taskmgr / 7 / स्टार्टअप" => सामने स्टार्टअप टैब से शुरू करें! (विंडोज 8.1) - लेकिन न तो "टास्कमग्र / स्टार्टअप / 7" और न ही "टास्कमग्र / स्टार्टअप" ऐसा करता है! (अतिरिक्त श्रेय: कृपया इस प्रमाण को दिए गए taskmgr.exe के कमांड लाइन पार्सिंग एल्गोरिदम को स्पष्ट करें ...)
davidbak

1
@davidbak taskmgr /anything /startupकाम करता है, इसलिए /startupदूसरे तर्क के रूप में।
माइकल डी रुएटर

@ मीचल्डराइटर - हाँ। क्या इसने उन्हें किसी भी क्रम में तर्क देने की अनुमति दी होगी? क्यूए में अतिरिक्त काम का कारण? जहाज की तारीख में देरी? हुह ????
18

2

कुछ नोट:

सिर्फ इसलिए कि एक आदेश भेजा जाता है, इसका मतलब यह नहीं है कि एक कार्यक्रम उन तर्कों को स्वीकार करता है, या कोई भी।

उदाहरण के लिए:

मैंने अपने अजीब कमांड के साथ टास्कमैनर को बुलाया और व्यवहारकर्ता नहीं बदला:

यहाँ छवि विवरण दर्ज करें

एक बुनियादी प्रोग्रामिंग स्टैंड बिंदु से, किसी भी एप्लिकेशन के पास किसी प्रकार का एक मुख्य तरीका होने वाला है जहां तर्क पारित किए जा सकते हैं। उदाहरण के लिए एक बेसिक विंडोज फॉर्म C # एप्लिकेशन कुछ इस तरह दिखता है:

private void Form1_Load(object sender, EventArgs e)
        {

        }

अगर मैं कुछ मज़ेदार तर्क देता हूं, तो एप्लिकेशन के साथ कुछ नहीं होता है, लेकिन प्रोसेस एक्सप्लोरर उन्हें पकड़कर प्रदर्शित करेगा।

यहाँ छवि विवरण दर्ज करें

यदि मैं स्पष्ट रूप से उन्हें संभालने का फैसला करता हूं, तो आपको कमांड से इंटरैक्शन मिलेगा।

यहाँ छवि विवरण दर्ज करें

और मुझे केवल इतना करना था कि फॉर्म के प्रवेश बिंदु को थोड़ा बदल दिया जाए:

private void Form1_Load(object sender, EventArgs e)
        {
            string arguments = Environment.GetCommandLineArgs()[1];

            this.Text = arguments;
        }

अब, यह क्यों है पर आपके प्रश्न पर वापस:

यदि आप taskmgr.exe को ctrl+ alt+ delविधि से एक्सेस करते हैं, तो आप वास्तव में कमांड तर्क "/ 3" देखते हैं। इसके अलावा अगर आप ctrl+ shift+ का उपयोग करते हैं तो escयह / 2 पास हो जाता है और यदि आप टास्कबार पर राइट क्लिक करते हैं और "स्टार्ट टास्क मैनेजर" पर क्लिक करें तो दिखाया गया स्विच / 4 है।

यह सब मुझे लगता है कि शायद कुछ ऐसा है जो विंडोज को जानना आवश्यक है, या शायद टास्कमैनगर के लिए लागू किया गया था जिसके बारे में हम नहीं जानते हैं। उदाहरण के लिए, विंडोज में सुरक्षा यह जानना चाह सकती है कि क्या ctrl+ alt+ delका उपयोग टास्कमग्री.कॉल करने के लिए किया गया था और स्क्रिप्ट या उपयोगकर्ता के लिए नहीं। फिर से, शुद्ध अटकलें लेकिन इस तरह के धागे मुझे लगता है कि यह कम से कम एक विचार हो सकता है।


बदनाम टीएल के लिए, डॉ

यह जानने के लिए कि Windows इन आदेशों को क्यों पारित करता है, हमें संभवतः Microsoft की विकास टीम के सदस्य या स्रोत कोड की आवश्यकता है। एक बेहतर जवाब नहीं हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.