2010-01-14 20 views
5

मैं सिर्फ एक दस्तावेज़ भंडारण समाधान कोडिंग समाप्त कर रहा हूं और मैंने निम्नलिखित समस्या को पार किया है। यूआई के भीतर उपयोगकर्ता एक फ़ाइल को खोलने का एक बटन दबा सकते हैं:प्रक्रिया के लिए वैकल्पिक। स्टार्ट()

try 
{ 
    Process.Start(file); 
} 
catch (Exception ex) 
{ 
    //Error handling code 
} 

मेरे मुद्दा यह है कि उपयोगकर्ता के पास मौजूद है, तो फ़ाइल से संबद्ध कोई आवेदन टाइप एक componentmodel अपवाद उस प्रभाव के लिए एक संदेश के साथ फेंक दिया जाता है।

मैं जो करना चाहता हूं उसके पास उस स्थिति में "ओपन के साथ" संवाद पॉप-अप है, क्या कोई विधि कॉल है जो मुझे याद आ रही है?

उत्तर

3

संवाद

http://www.codeproject.com/KB/shell/openwith.aspx

साथ खोलें प्रयोग करने के लिए यह लेख देखें मैं पकड़ में एक कोशिश बयान में Process.Start कॉल डाल होगा, और फिर दिखाने के "ओपन के साथ"।

5

प्रक्रिया को कॉल करने से पहले आप उस फ़ाइल प्रकार से जुड़े किसी एप्लिकेशन को देखने के लिए रजिस्ट्री की जांच कर सकते हैं। स्टार्ट। वैकल्पिक रूप से, आप घटक मॉडल अपवाद को पकड़ सकते हैं और वहां से संवाद के साथ खुला खोल सकते हैं।

+0

उपयोग कोड के हल -आरएल-प्रोटोकॉल-ऑन-विंडोज-सिस्टम उदाहरणों के लिए कि आपको कैसे जांचें, एक यूआरएल प्रोटोकॉल स्थापित है –

1

कोई नहीं है। मुझे लगता है कि आपका वर्तमान दृष्टिकोण सबसे अच्छा है। बस प्रोग्राम को चलाने का प्रयास करें और फिर अपवाद के मामले में, फ़ाइल के पास कोई एसोसिएशन नहीं होने के कारण, प्रोग्राम चलाने के लिए उन्हें फ़ाइल चुनने की अनुमति देने के लिए एक संवाद खोलें।

1
Process.Start("explorer.exe",file) 

भी एक कोशिश के लायक हो सकता है।

http://stackoverflow.com/questions/4638/how-do-you-create-your-own-moniker से इस मुद्दे को मैं XP, विस्टा भर URL खोलकर का था, और 7

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