2015-06-08 7 views
7

मेरे आवेदन में, मैं एक अलग एक्सटेंशन से जुड़े कार्यक्रम का उपयोग करके मनमाने ढंग से नाम और एक्सटेंशन के साथ फ़ाइल निष्पादित करने में सक्षम होना चाहता हूं।किसी भिन्न एक्सटेंशन के संबंधित एप्लिकेशन के साथ फ़ाइल को निष्पादित करने के लिए कैसे करें?

उदाहरण के लिए, मैं एक फ़ाइल file.dat कहा जाता है कहते हैं, लेकिन जैसे कि वह file.txt या file.dat.txt नामित किया गया था मैं, नोटपैड के साथ इसे खोलने के लिए करना चाहता था। इसके अलावा, मुझे फ़ाइल का नाम बदलने की अनुमति नहीं है, इसलिए यह सवाल से बाहर है।

यदि फ़ाइल file.txt कहा जाता है, तो मैं ShellExecute पर कॉल कर सकता हूं। लेकिन file.dat पर कॉल करते समय यह विफल रहता है; विंडोज शिकायत करता है कि उस फ़ाइल के लिए कोई सहयोग नहीं है।

मैं एक विशिष्ट निष्पादन हार्डकोड करने, क्योंकि (उपरोक्त उदाहरण में) अंत उपयोगकर्ता .txt फ़ाइलों वर्डपैड बजाय नोटपैड के साथ जुड़े हो सकता था नहीं करना चाहती। ऐसे मामले में, मैं वर्डपैड के साथ अपना file.dat खोला चाहता हूं।

उत्तर

10

ShellExecuteEx पर कॉल करें और SHELLEXECUTEINFO संरचना के lpClass सदस्य निर्दिष्ट करें। ध्यान दें कि आपको fMask सदस्य में SEE_MASK_CLASSNAME शामिल करना होगा।

उदाहरण के लिए, अनुरोध करने के लिए है कि फाइल .txt एक्सटेंशन से संबद्ध कार्यक्रम के साथ खोला जा '.txt' को lpClass निर्धारित किया है।

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

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