2008-10-21 14 views
8

मेरे पास कुछ प्रश्न हैं:आवेदन के साथ फ़ाइलटाइप एसोसिएशन (सी #)

1) क्या संभव है कि मेरा प्रोग्राम फ़ाइल टाइप करें, लेकिन केवल तभी चल रहा है? क्या आप इस व्यवहार के साथ कुछ गलत देखते हैं? "सभी .lala फ़ाइलों पर कब्जा" या ".lala संघ बहाल":

2) दूसरा विकल्प है कि मैं दिखाई दे रही है उपयोगकर्ताओं को अपनी ऐप्स के साथ खुलने या डिफ़ॉल्ट संघ ... की तरह कुछ को बहाल करने का फैसला देना है। मैं यह कैसे कर सकता हूँ? आपको क्या लगता है कि यह सबसे अच्छा तरीका है?

उत्तर

7

फ़ाइल एसोसिएशन के संबंध में, मैंने पहले एक उत्तर लिखा है कि कम से कम covers the "How"

यह आपको सही दिशा में इंगित करना चाहिए कि बैकअप को कैसे प्रबंधित करें और पुनर्स्थापित करें। सी # के माध्यम से सीधी रजिस्ट्री एक्सेस के साथ, .reg फ़ाइलों का उपयोग करने की कोई आवश्यकता नहीं होगी, इसलिए आप पिछले ऐप को बैक अप लेने के लिए स्वतंत्र हैं, हालांकि आप अपने ऐप में पसंद करते हैं, और इसे वहां से भी पुनर्स्थापित करते हैं।

यहां मुख्य प्रश्न यह है: क्या आप फ़ाइल संघों को यादृच्छिक रूप से बदलना चाहिए? कम से कम उपयोगकर्ता को सामने से पूछना आवश्यक होगा (जैसा कि आपने संकेत दिया था)।

इसके अलावा, यूएसी सक्षम वाले Vista उपयोगकर्ता, या अन्य विंडोज संस्करणों के गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं को वैश्विक फ़ाइल संघों को बदलने की आवश्यक अनुमति नहीं हो सकती है। (अन) आपके प्रोग्राम की स्थापना प्रक्रिया एकमात्र जगह हो सकती है जहां यह सफल हो सकती है।

संपादित

Franci Penov indicated in his answer हैं, वहाँ एक तरह से गैर-व्यवस्थापकों के लिए, प्रति-उपयोगकर्ता के आधार पर स्थानीय फ़ाइलों के समूह को बदलने के लिए (यही कारण है कि मैं "वैश्विक संगठनों" की बात की थी है पिछले पैराग्राफ में) है । उन्होंने यह भी उल्लेख किया कि क्यों जा रहा है अत्यधिक सलाह नहीं दी जा रही है।

+4

दूसरी समस्या यह है कि यदि आपका एप्लिकेशन क्रैश हो जाता है, तो यह गलत तरीके से संबद्ध एक्सटेंशन को छोड़ देगा। यह वास्तव में एक प्रोग्राम है जो उस तरह की कंप्यूटर सेटिंग्स को बदलता है, और क्रैश होने पर उन्हें "दूषित" छोड़ देता है –

2

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

एसोसिएशन रजिस्ट्री में HKEY_CLASSES_ROOT के अंतर्गत सूचीबद्ध हैं और इन्हें कई सारे तरीकों से मैप किया जा सकता है (माइम प्रकार/प्रोगिड्स/आदि)।

कई ऐप्स मैंने देखा है कि क्या आप इंस्टॉल समय के दौरान एप्लिकेशन के साथ कुछ फ़ाइल प्रकारों को जोड़ना चाहते हैं, और आपको ऑप्ट-आउट करने और वर्तमान सेटिंग्स को छोड़ने की क्षमता देते हैं।

मुझे नहीं लगता कि मैं "मक्खी पर" की सलाह देते हैं फ़ाइल प्रकार संघों

1

1) आप फ़ाइल प्रकारों को खुला संवाद फ़ाइल प्रकार droplist में हैं परिभाषित करने के लिए मिलता है। उस के बाहर, संभव एप्लिकेशन खोलने पर फ़ाइल प्रकार डिफ़ॉल्ट को बदलने के लिए, और फिर अनुप्रयोग के दौरान प्रतिस्थापित करें, क्योंकि फ़ाइल प्रकार एसोसिएशन केवल एक रजिस्ट्री सेटिंग है।

गलत के रूप में, मैं नहीं करूँगा। पहला कारण यह है कि यह अनुप्रयोगों का मानक व्यवहार नहीं है। दूसरा कारण यह है कि यदि आपका एप्लिकेशन या पीसी अप्रत्याशित रूप से बाहर निकलता है, तो आप एसोसिएशन को इसकी मूल सेटिंग में वापस नहीं लौटने का जोखिम चलाते हैं।

2) डिफ़ॉल्ट रूप से विंडोज उपयोगकर्ता को राइट-क्लिक और "ओपन के साथ" कमांड का उपयोग करने के लिए इन विकल्पों को चुनने की अनुमति देता है।

3

आप उस फ़ाइल एक्सटेंशन के साथ एक छोटे निष्पादन योग्य को जोड़कर "फ्लाई पर" फ़ाइल एसोसिएशन परिवर्तन को कार्यान्वित कर सकते हैं, जो शुरू होने पर जांच करेगा कि आपका मुख्य एप्लिकेशन चल रहा है या फ़ाइल नाम पास कर रहा है या यदि यह इसे नहीं चला रहा है ' "नियमित" जुड़े आवेदन का आह्वान करेंगे।

इस दृष्टिकोण का मुख्य लाभ यह है कि आपको केवल एक बार रजिस्ट्री के साथ मिलना होगा।

इस दृष्टिकोण के मुख्य कमियां हैं:

  • आप एक सहायक प्रक्रिया की जरूरत है
  • अनुप्रयोग है कि "मालिक" इन फ़ाइल एक्सटेंशन परिवर्तन का पता लगाने और उपयोगकर्ता के लिए शिकायत कर सकते हैं, "मरम्मत" उत्साह इस प्रकार आपको तस्वीर से बाहर ले जाना

वैकल्पिक रूप से, आप अपने मुख्य कार्यक्रम की शुरुआत में फ़ाइल एसोसिएशन बदल सकते हैं। यह गैर-व्यवस्थापक उपयोगकर्ताओं के लिए भी काम करेगा। जबकि फाइल एसोसिएशन HKEY_CLASSES_ROOT में संग्रहीत हैं, वहां एक छोटी सी चाल है - एचकेसीआर वास्तव में HKEY_LOCAL_MACHINE\SOFTWARE\Classes और HKEY_CURRENT_USER\SOFTWARE\Classes दोनों का मानचित्र है। इस प्रकार, आप HKCU में वर्तमान उपयोगकर्ता के लिए फ़ाइल एक्सटेंशन अस्थायी रूप से पंजीकृत कर सकते हैं और HKLM से मूल सहयोग "छाया" कर सकते हैं।

बेशक, मैं इस दृष्टिकोण के खिलाफ सलाह दूंगा, क्योंकि इस संगठन को स्थायी बनाने के लिए आपके आवेदन में केवल एक दुर्घटना होती है और चूंकि बहुत कम अनुप्रयोगों को पता है कि एचकेसीयू में फाइल एसोसिएशन से कैसे निपटना है, संभावना है कि यह होगा मूल आवेदन के लिए एक अप्राप्य स्थिति।

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