2010-06-03 17 views
13

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

+0

यह प्रश्न हमारी बहन साइट, स्टैक ओवरफ़्लो पर है। इसे जल्द ही वहां माइग्रेट कर दिया जाएगा। –

उत्तर

11

रजिस्टर करने के लिए एक आवेदन पत्र के साथ एक नई फाइल एक्सटेंशन निम्नलिखित चूक आदेश का उपयोग करें।
फ़ाइल एक्सटेंशन i.e. txt के साथ PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD को बदलें।
अपने प्रोग्राम के com/org नाम i.e. com.apple.itunes के साथ org.category.program को बदलें।

$ defaults write com.apple.LaunchServices LSHandlers -array-add \ 
"<dict><key>LSHandlerContentTag</key> 
<string>PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD</string><key>LSHandlerContentTagClass</key> 
<string>public.filename-extension</string><key>LSHandlerRoleAll</key> 
<string>org.category.program</string></dict>" 


एक बार जब आप लांच सेवाओं के लिए फाइल एक्सटेंशन जोड़ लिया है, आप तो यह होगा फिर से पढ़ विन्यास फाइल लांच सेवाओं deamon को पुनरारंभ करना होगा।

आप या तो लॉन्च सेवाओं को पुनरारंभ करने के लिए नीचे दिए गए आदेश को चला सकते हैं, या बस अपने कंप्यूटर को पुनरारंभ करें। लॉग इन/लॉग आउट करना भी ऐसा कर सकता है लेकिन मैंने कोशिश नहीं की है।

$ /System/Library/Frameworks/CoreServices.framework/Versions/A/Framework/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user 
7

CFBundleDocumentTypes Info.plist कुंजी के विवरण के लिए यहाँ देखो:

http://developer.apple.com/mac/library/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685

कश्मीर

+0

खराब लिंक। संभवतः यह कहां जाना है: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685 –

-1

मैं https://moosystems.com/articles/8-double-click-on-files-in-finder-to-open-them-in-your-python-and-tk-application.html पर विस्तार से पूरी बात का वर्णन किया।

इसमें आपके आवेदन को py2app के माध्यम से बंडल करना, आपकी जानकारी.प्लिस्ट फ़ाइल में कुछ कुंजी जोड़ना और अपने ऐप में ईवेंट हैंडलर इंस्टॉल करना शामिल है।

+0

यह पोस्ट एक पायथन ऐप के बारे में है (इसे एक मैक ऐप के रूप में बंडल करना)। इसमें आवश्यक जानकारी शामिल हो सकती है, लेकिन यह सीधे खुजली को खरोंच नहीं लगती है। –

+0

ऊपर दिए गए स्वीकृत उत्तर में उल्लिखित डिफ़ॉल्ट आदेश ठीक काम करता है, लेकिन आपको अपने ऐप की स्थापना के बाद इसे कॉल करने की आवश्यकता होगी, जबकि मेरे ऐप में वर्णित फ़ाइल प्रत्यय में आपके ऐप को लिंक करते समय स्वचालित रूप से इसका प्रबंधन होता है जब भी आप एप्लिकेशन को कॉपी करते हैं मैक। लेकिन हां, मेरा आलेख एक बड़ी पायथन निर्माण प्रक्रिया का भी वर्णन करता है। दूसरी ओर, मैकोज़ के लिए आपके द्वारा बनाए गए किसी भी एप्लिकेशन के लिए प्रक्रिया समान होगी। –

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