विंडोज़ रजिस्ट्री के साथ कस्टम फ़ाइल एक्सटेंशन बनाना


4

ठीक है, इसलिए मैं कुछ समय से इसे पढ़ रहा हूं और गुगली कर रहा हूं और मुझे समझ नहीं आ रहा है कि क्या गलत हो रहा है। मैं अपनी रजिस्ट्री में एक .int फ़ाइल एक्सटेंशन बनाने की कोशिश कर रहा हूं ताकि मैं इसमें शेलन्यू कुंजी जोड़ सकूं और इस तरह से मुझे फ़ाइल निर्माण की सरल राइट क्लिक> नई> फ़ाइल विधि करने की अनुमति मिलनी चाहिए। इसलिए मैं HKEY_CLASSES_ROOT में गया और मैंने एक .int नामक एक कुंजी बनाई।
मैंने फिर एक डिफ़ॉल्ट आइकन के साथ इंफ़ाइल नामक एक कुंजी बनाई और इसके (डिफ़ॉल्ट) स्ट्रिंग को "स्थानीयकरण फ़ाइल" पर सेट किया। फिर मेरी .int कुंजी में मैंने (डिफ़ॉल्ट) इंटेफ़ाइल सेट किया और सामग्री प्रकार बनाया जो मैंने सादे / पाठ पर सेट किया। फिर मैंने ShellNew नाम से एक नई कुंजी बनाई और उस कुंजी में मैंने FileName को WINDOWS / ShellNew में पथ पर सेट किया जहां मेरी डिफ़ॉल्ट .int फ़ाइल थी। हालाँकि, जब मैं राइट क्लिक करता हूं और नए पर जाता हूं तो यह न्यू लोकलाइजेशन फाइल नहीं दिखाता है। क्या मुझे कहीं रजिस्ट्री प्रविष्टि याद आ रही है? किसी भी मदद की बहुत सराहना की जाएगी, मैं यह पता नहीं लगा सकता कि यह काम क्यों नहीं कर रहा है क्योंकि मैंने पहले भी कई कुंजियों में शेलन को जोड़ा है और यह हमेशा त्रुटिपूर्ण था। यह मेरा पहली बार एक पूरी तरह से नया फ़ाइल एक्सटेंशन बना रहा है लेकिन मैंने अन्य फ़ाइल एक्सटेंशनों को पढ़ा है जो मौजूद हैं और यह नहीं देख सकते कि यह क्यों काम नहीं कर रहा है। फिर से अग्रिम में Ty।

संपादित करें: मैंने जो भी सेट किया है उसका स्पष्टिकरण।

intfile:
     (Default) REG_SZ "Localization File"
intfile>shell>open>command:
     (Default) REG_SZ "C:\Program Files\Notepad++\notepad++.exe"
.int: 
     (Default) REG_SZ "intfile"
     ContentType REG_SZ "plain/text"
     Percieved Type REG_SZ "text"
.int>ShellNew:
     (Default) REG_SZ "null"
     FileName REG_SZ "C:\WINDOWS\ShellNew\New Int.int"

जवाबों:


1

यही कारण है कि आपने अपनी फ़ाइल प्रकार को सही ढंग से पंजीकृत नहीं किया है। ठीक है, तकनीकी रूप से, आपने अपना "आवेदन" सही दर्ज नहीं किया है।

http://msdn.microsoft.com/en-us/library/cc144148(v=vs.85).aspx#fa_register_type \

आपने सही ढंग से पंजीकृत किया है। .intकॉल करने के लिए कहता है intfile। हालाँकि आप फ़ाइल को हैंडल करने वाले एप्लिकेशन में डालते हैं, लेकिन आप कहाँ हैं! इसलिए शेललेक्स में देखा जा रहा है intfileऔर यह सभी पाता है कि डिफ़ॉल्ट फ़ील्ड में एक स्ट्रिंग है। इसलिए ऑपरेशन विफल हो जाता है।

चूंकि आप वहां स्ट्रिंग चाहते हैं, इसलिए आपको निष्पादित करने के लिए एक डिफ़ॉल्ट क्रिया के साथ शेल की आपूर्ति करनी होगी। intfileशेल के तहत \ open \ कमांड बनाएँ। अपने आवेदन के लिए पूर्ण पथ दर्ज करें, उदाहरण के लिए, "% ProgramFiles% \ Notepad ++ \ Notepad +। Exe" "% 1"।

FileName उस फ़ाइल का पूर्ण पथ है जिसे आप प्रतिलिपि बनाना चाहते हैं, इसलिए आपको "% windir% और विन्डोज़ की आवश्यकता नहीं है।

संपादित करें मुझे विश्वास नहीं हो रहा है कि मैं इस विधि का उपयोग कर रहा हूं। । ।

लेकिन मुझे किसी प्रोग्राम को लिखे बिना इसे जोड़ने का कोई तरीका नहीं पता है। । ।

Hacktastic

EDIT2:

ठीक है चले हम।

कुंजी .intमें Default(SZ)= intfileऔर संदर्भ प्रकार (SZ) = है plain.text। कुंजी के तहत .int, आपके पास उपकुंजी होगी Shellnew। डिफ़ॉल्ट खाली होना चाहिए। एक नया खाली स्ट्रिंग (Reg_SZ) बनाएं और फ़ाइल नाम में दिए गए मान के लिए: `C: \ windows \ ShellNew \ NewLocalization File '।

intfileडिफ़ॉल्ट के तहतNew Localization File.

डबल कोट्स की कमी पर ध्यान दें। अब intfileनिम्नलिखित उपकुंजियों की आवश्यकता है: shellइसे डिफ़ॉल्ट बनाएं = open। इसके बाद, शेल केopen तहत उपकुंजी बनाएं ।

अब उपकुंजी commandको खुले में करें

उद्धरण के साथ स्ट्रिंग के तहत कार्यक्रम का पूरा पथ रखो। यानी "c:\Program Files (x86)\Notepad++\notepad++.exe" "%1"। ध्यान दें कि ऐसे हैं दोहरे उद्धरण चिह्नों।

संपादित: 3

तो ऐसा लगता है कि ओपी एक अज्ञात मुद्दे में भाग गया और इसे इस तरह से हल किया।

उसे ठीक लगा! आप ज्यादातर सही थे, और मैं थोड़ा सही था। समस्या यह थी कि मैंने एक बार फाइल को खोला था और डिफ़ॉल्ट प्रोग्राम को पॉप अप संवाद में नोटपैड + + पर सेट किया था। इसने int_auto_file नामक एक कुंजी बनाई । मैं रजिस्ट्री के माध्यम से गया, बहुत समय लेने वाला, और .int एक्सटेंशन के सभी संदर्भ हटा दिए गए। उसके बाद मैंने उन्हें फिर से बनाया और अब यह पूरी तरह से काम करता है।


मैंने बदलाव किए और अभी भी यह राइट क्लिक मेनू में दिखाई नहीं दे रहा है। ऐसा इसलिए हो सकता है क्योंकि Default Regedit बनाता है एक REG_SZ और% करने के लिए ProgramFiles% को एक REG_EXPAND_SZ प्रकार की आवश्यकता होती है, लेकिन मुझे नहीं पता कि इस प्रकार को कैसे संपादित किया जाए और यह मुझे (डिफ़ॉल्ट), या यहां तक ​​कि नाम बदलने की अनुमति नहीं देगा। यह। उत्तर के लिए धन्यवाद :)
बैरेट

आप Reg_SZ का उपयोग कर सकते हैं। आपको इसे केवल उद्धरणों में रखना होगा। जैसे मैंने उसे टाइप किया।
सर्फास

हुम, तुम सही हो। आप इसे विस्तार योग्य स्ट्रिंग प्रकार में नहीं बदल सकते। यह हैक होगा और एक स्ट्रिंग के रूप में डाल दिया।
सर्फस

मैंने इसे दोनों तरह से खोलने की कोशिश की और न ही काम किया। मैं अब बहुत उलझन में हूँ
Barrett

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