मैं अपने डिफ़ॉल्ट ब्राउज़र को विंडोज 7 में एक असूचीबद्ध कार्यक्रम में कैसे बदलूं?


25

मैं नियमित रूप से कई ब्राउज़रों का उपयोग करता हूं, इसलिए मैंने एक स्क्रिप्ट लिखी है जो पहले से चल रहे ब्राउज़र में पेज खोलेगी (या अगर कोई नहीं है तो फ़ायरफ़ॉक्स)। मैं इस स्क्रिप्ट को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करना चाहता हूं। जब मैं "सेट एसोसिएशंस" संवाद पर जाता हूं, तो HTTP का चयन करें, और "प्रोग्राम बदलें" पर क्लिक करें, जो संवाद पॉप अप होता है वह मुझे उन वेब ब्राउज़रों में से एक को छोड़कर कुछ भी चयन करने की अनुमति नहीं देता है जो मैंने पहले ही स्थापित किया है। यह सभी प्रोटोकॉल के लिए मामला प्रतीत होता है (फ़ाइल एक्सटेंशन के विपरीत, जो आपको "अन्य प्रोग्राम" से चुनने या सूचीबद्ध नहीं होने वाले प्रोग्राम के लिए ब्राउज़ करने की अनुमति देता है)। Windows मदद इस बारे में कुछ नहीं कहती है, और बस "ब्राउज़ करें ..." बटन का उपयोग करने के लिए कहती है, जो उपलब्ध नहीं है। मैंने 3-पार्टी "डिफॉल्ट प्रोग्राम्स एडिटर" की भी कोशिश की, लेकिन ऐसा करने में सक्षम नहीं लगता है।

क्या कोई तरीका है कि मैं अपनी स्क्रिप्ट को डिफ़ॉल्ट रूप से सेट कर सकता हूं (शायद रजिस्ट्री को संपादित करके)?

जवाबों:


36

हां, आप इसे सीधे रजिस्ट्री हेरफेर के साथ स्क्रिप्ट कर सकते हैं।

संक्षिप्त उत्तर

में निम्न में से प्रत्येक कॉपी .regफ़ाइलें (जैसे firefox.reg, chrome.reg, ie.reg) और उन्हें चलाने के लिए जब आप स्विच (या, के साथ स्क्रिप्ट करना चाहते हैं reg.exe)।

फ़ायरफ़ॉक्स के लिए:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"

क्रोम के लिए:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"

IE9 के लिए:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"

दीर्घ उत्तर

विंडोज प्रति उपयोगकर्ता मानक प्रोटोकॉल UrlAssociationsकुंजी के तहत डिफ़ॉल्ट पंजीकरण , पर पाया जाता है

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations

फ़ाइल संघों के समान, लिंक के लिए "डिफ़ॉल्ट प्रोग्राम" हो सकता है। यह शब्दजाल शब्दावली का एक प्रकार है जो UserChoiceकुंजी को संदर्भित करता है- httpProgId के तहत एक मानक फ़ाइल एसोसिएशन-जैसे शेल पंजीकरण भी है जिसे बदला भी जा सकता है, लेकिन ब्राउज़र के लिए समीपस्थ कॉन्फ़िगरेशन डिफ़ॉल्ट प्रोग्राम के माध्यम से है (इसके लिए एक अतिरिक्त टिप्पणी के लिए नीचे देखें) )।

जब आप एक ब्राउज़र सेट करने के लिए कंट्रोल पैनल के डिफ़ॉल्ट प्रोग्राम्स सेक्शन में जाते हैं, तो मैं यहाँ जो बात कर रहा हूँ, वह आपको बदल रहा है:

नियंत्रण कक्ष में प्रोटोकॉल के लिए डिफ़ॉल्ट कार्यक्रम

इसे सीधे रजिस्ट्री में कॉन्फ़िगर करने के लिए, आइए पहले निरीक्षण करें कि यह पहले से ही है। इस स्क्रीनशॉट में मैंने उस कुंजी में नेविगेट किया है regedit.exeऔर Chrome मेरा डिफ़ॉल्ट ब्राउज़र है, जिसे ChromeHTMLProgId मान द्वारा निर्दिष्ट किया गया है ।

Regedit में UrlAssociations उपकुंजी में नेविगेट करना

लिंक पर क्लिक करने पर आपको कौन सा ब्राउज़र खोलना है, इसके लिए आपको जो न्यूनतम परिवर्तन करने की आवश्यकता है, वह है कि आप जिस प्रोटोकॉल को बदलना चाहते हैं, ProgIdउसके तहत UserChoiceउपकुंजी के तहत मान को बदलना है (शायद httpऔर httpsवही होगा, लेकिन अगर किसी कारण से आप प्रत्येक बनाना चाहते थे। उन अलग ब्राउज़रों में खुला, आप कर सकते हैं)।

अब यह केवल यह निर्धारित करने की बात है कि फ़ायरफ़ॉक्स, IE और किसी अन्य ब्राउज़र के लिए क्या उपयोग करना है, जिसे आप स्विच करना चाहते हैं। यदि आप इस प्रोग्राम को निर्धारित करना चाहते हैं, तो आप Capabilitiesफ़ायरफ़ॉक्स के लिए यहां पाए गए ब्राउज़र पंजीकरण की कुंजी में खुदाई करके ऐसा कर सकते हैं :

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet वह जगह है जहाँ सभी ब्राउज़र सूचीबद्ध हैं, और प्रत्येक को उपरोक्त संरचना होनी चाहिए।

Regedit में क्षमताओं की कुंजी पर नेविगेट करना

आप निरीक्षण से देख सकते हैं कि अगर मैं फ़ायरफ़ॉक्स पर स्विच करना चाहता था, तो मैं FirefoxURLUrlAssociations में ProgId मान का उपयोग करूंगा।

(हालांकि, यदि आप इस तरह से खुदाई नहीं करना चाहते हैं, तो एक त्वरित धोखा है: बस जो भी ब्राउज़र को आप डिफ़ॉल्ट के रूप में सेट करना चाहते हैं, और यह देखने के लिए कि ब्राउज़र ने क्या सेट किया है, देखने के लिए फिर से इंस्टॉल करें UserChoice!

हमें बस इतना करना है कि FirefoxURLफ़ायरफ़ॉक्स में मुख्य मूल्य को बदल दिया जाए और अब लिंक खुले। ऐसा करने के बाद आप कंट्रोल पैनल के लिंक या डबल चेक पर क्लिक कर सकते हैं जो सही डिफॉल्ट पंजीकृत है:

कंट्रोल पैनल में डिफ़ॉल्ट प्रोग्राम को डबल चेक करना

अब यदि आप पूरा ध्यान दे रहे हैं, तो आप इस सब के साथ कुछ दोष देख सकते हैं:

  1. IE में URLAssociationsब्राउज़र पंजीकरण के तहत एक उपकुंजी नहीं है StartMenuInternet, तो ProgId मान कहाँ से आता है? उत्तर: मैं नहीं जानता, कम से कम अधिक शोध के बिना नहीं। यह हार्डकोड किया जा सकता है या किसी अन्य कुंजी में पाया जा सकता है जो मैंने अभी तक नहीं पाया है।

  2. फायरफॉक्स के ProgId यह के अंतर्गत है URLAssociationsकर रहे हैं FirefoxURL, लेकिन जब आप ब्राउज़र ही में विकल्पों में रजिस्टर करने के लिए क्लिक करें, इसे इस्तेमाल करता है FirefoxHTMLबजाय ProgId के रूप में! क्यूं कर? फिर, मुझे नहीं पता। वे दोनों काम करते हैं क्योंकि वे दोनों मौजूद हैं और फ़ायरफ़ॉक्स को इंगित करते हैं। शायद यह जानबूझकर है, लेकिन यह बिना किसी प्रभाव के शायद एक बग है।

  3. UserChoiceडिफ़ॉल्ट प्रोग्राम नहीं होने पर क्या होता है ? उत्तर: प्रोटोकॉल (जैसे, http) के लिए "नियमित" फ़ाइल एसोसिएशन का उपयोग किया जाता है। यह सिर्फ फ़ाइलों के समूह (जैसे मानक ProgId स्थानों पर पाया जाता है HKCU\Software\Classes, HKLM\Software\Classesऔर कम से दृश्य HKCR)। कम से कम क्रोम सेट करता है यह वहां की जानकारी है, मुझे लगता है, लेकिन फ़ायरफ़ॉक्स कम से कम मेरे परीक्षणों में नहीं लगता है।

  4. मेरा सुझाव है कि यदि आप इसे डिफ़ॉल्ट प्रोग्राम्स एडिटर में शामिल करना चाहते हैं, तो आपको उस एप्लिकेशन के यूजरव्यू फीडबैक पेज पर सुझाव देना चाहिए और इसे अपग्रेड करना चाहिए । मेरे पास यह अच्छा अधिकार है कि एप्लिकेशन लेखक उस फीडबैक पर ध्यान देता है जब यह निर्णय लेता है कि उसका विकास समय कैसे व्यतीत करे!


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

2
@MorganMay आपको UserChoiceडिफ़ॉल्ट प्रोग्राम पंजीकरण को हटाने की आवश्यकता है , ताकि "मानक" फ़ाइल एसोसिएशन कुंजी का उपयोग किया जाए, जैसा कि बिंदु # 3 में संदर्भित है। उदाहरण के लिए, डिफ़ॉल्ट मान को देखें HKEY_CLASSES_ROOT\http\shell\open\command(आप HKEY_CURRENT_USERमानक उपयोगकर्ता के रूप में उसी कुंजी को लिख सकते हैं , यदि वह मायने रखता है)। बस आवेदन पथ सेट करने की बात होनी चाहिए और आपके ब्राउज़र को जो भी पैरामीटर स्ट्रिंग की आवश्यकता है (उदाहरण के लिए, -- %1मुझे लगता है कि क्रोम के लिए)
फैक्टर मिस्टिक

1
खुशी है कि मैं अंत तक पढ़ा। ProgId प्रविष्टियों को हटाने का संयोजन, और फिर HKCR \ http \ shell \ open \ कमांड में "डिफ़ॉल्ट" हैंडलर सेट करना
Brent

-1

अगर कोई और है जो विंडोज 10 में एक डिफ़ॉल्ट प्रोटोकॉल हैंडलर के रूप में कुछ कस्टम सेट करने की तलाश में इस उत्तर पर उतरा, तो मुझे लगता है कि मैंने इसे क्रैक किया है।

इस प्रश्न का अन्य उत्तर मुझे Clients\StartMenuInternetकुंजी के साथ एक कदम करीब मिला , जो मुझे विंडोज 7 में डिफ़ॉल्ट ब्राउज़र को सेट करने के बारे में नहीं पता था। हालाँकि, फ़ायरफ़ॉक्स की StartMenuInternetकुंजी को बहुत अधिक डुप्लिकेट करने के बाद , मेरा प्रोग्राम अभी भी सेटिंग्स में नहीं दिखाई दे रहा था। एप्लिकेशन।

फ़ायरफ़ॉक्स की स्थापना रद्द करने के लिए रेवो अनइंस्टालर का उपयोग करने के बाद, फ़ायरफ़ॉक्स के अनइंस्टालर को रद्द करना, फिर बचे हुए रजिस्ट्री कुंजियों के लिए रेवो को स्कैन करने देना, मुझे एक और कुंजी मिली HKLM\SOFTWARE\RegisteredApplications:। ऐसा लगता है कि पंजीकृत सभी कार्यक्रमों को संग्रहीत करना है जो विंडोज़ को उनकी कार्यक्षमता के बारे में बताया जा सकता है।

इसलिए StartMenuInternetकुंजी को स्थापित करने के बाद , HKLM\SOFTWARE\RegisteredApplicationsबिंदु में एक कुंजी जोड़ें Software\Clients\StartMenuInternet\YOURPROGRAM\Capabilities- हां, ठीक उसी तरह, जैसे Software\:

Regedit का स्क्रीनशॉट (जब तक मेरे पास 10 प्रतिनिधि नहीं हैं मैं छवि को एम्बेड नहीं कर सकता ...)


-1

आपके प्रोग्राम (YName.exe) को ब्राउज़र मानने के लिए, इसे पंजीकृत करने की आवश्यकता है:

1) ... StartMenuInternet - जैसा कि ऊपर वर्णित है,

HKCU \ Software \ Clients \ StartMenuInternet \ YName \ क्षमताओं \ URLAssociations

http = YNameURL

https = YNameURL

2) HKCU \ Software \ RegisteredApplications - जैसा कि ऊपर वर्णित है:

YName = सॉफ्टवेयर \ Clients \ StartMenuInternet \ YName \ क्षमताओं

3) HKCU \ Software \ Classes \ YNameURL \ shell \ open \ कमांड

@ = पथ \ YName.exe

4) HKCU \ Software \ Classes \ Applications \ YName.exe \ shell \ open \ कमांड

@ = पथ \ YName.exe



1
सुपर उपयोगकर्ता में आपका स्वागत है ! कृपया ध्यान दें कि उत्तर अंग्रेजी में (पूरी तरह से) होने चाहिए।
ग्लोरफाइंडेल

(1)  सुपर यूजर एक अंग्रेजी-केवल साइट है। कृपया अपने उत्तर के उन हिस्सों को हटा दें जो अंग्रेजी में नहीं हैं। (२) प्रत्येक उत्तर को अपने आप खड़ा होना (समझदारी) होना चाहिए। यह एक नहीं है। अन्य उत्तर (ओं) के संदर्भ में उत्तर को "जैसा कि ऊपर वर्णित है" नहीं कहना चाहिए। कृपया इसे संपादित करें ताकि यह अपने आप समझ में आए। जब तक आप क्रेडिट देंगे, अन्य उत्तरों के कुछ हिस्सों की नकल करना ठीक है। (३) यह जो कहता है उससे अधिकांश पहले ही कहा जा चुका है। कृपया स्पष्ट करें कि आप कौन सी नई जानकारी जोड़ रहे हैं।
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.