2008-09-17 20 views
40

मैं विंडोज के साथ एक कस्टम प्रोटोकॉल कैसे पंजीकृत करूं ताकि जब किसी ईमेल या वेब पेज पर किसी लिंक पर क्लिक किया जाए तो मेरा आवेदन खोला जाएगा और यूआरएल के पैरामीटर इसे पास कर दिए गए हैं?मैं विंडोज में एक कस्टम यूआरएल प्रोटोकॉल कैसे पंजीकृत करूं?

+0

संभावित डुप्लिकेट [मैं अपना यूआरएल प्रोटोकॉल कैसे बना सकता हूं? (उदाहरण के लिए: // ...)] (http://stackoverflow.com/questions/389204/how-do-i-create-my-own-url-protocol-eg-so) –

उत्तर

23

मुझे लगता है कि यह एमएसडीएन में शामिल है, कृपया Registering an Application to a URL Protocol देखें।

+0

यह केवल काम करेगा अर्थात। – Oded

+5

मैं ओथ-आधारित एप्लिकेशन लिख रहा था और एमएसडीएन में वर्णित प्रक्रिया पूरी तरह से मोज़िला फ़ायरफ़ॉक्स और ओपेरा (11.6) –

+9

के साथ काम करती है यह विंडोज पर सभी ब्राउज़रों में काम करती है। यह एक ओएस-स्तरीय चीज है, ब्राउज़र-स्तर की चीज़ नहीं। –

19

एमएसडीएन लिंक अच्छा है, लेकिन सुरक्षा जानकारी पूरी नहीं है। हैंडलर पंजीकरण में "% 1" होना चाहिए, न कि% 1। यह एक सुरक्षा उपाय है, क्योंकि कुछ यूआरएल स्रोत आपके कस्टम प्रोटोकॉल हैंडलर को आमंत्रित करने से पहले% 20 को गलत तरीके से डीकोड करते हैं।

पीएस। आपको यूआरएल पैरामीटर न केवल संपूर्ण यूआरएल मिलेगा। लेकिन यूआरएल पहले से उल्लिखित% 20-> अंतरिक्ष रूपांतरण के अलावा, कुछ दुर्व्यवहार के अधीन हो सकता है। यह आपके यूआरएल सिंटैक्स डिजाइन में रूढ़िवादी होने में मदद करता है। यादृच्छिक // में फेंक न दें या आप उस गड़बड़ी में आ जाएंगे जो फ़ाइल है: // है।

+0

"गड़बड़ है कि फ़ाइल: //" का क्या मतलब है? – Maleev

+5

फ़ाइल का कोई औपचारिक मानचित्रण नहीं है: स्थानीय पथों के लिए यूआरएल। जब पथ एक विंडोज निर्देशिका को संदर्भित करता है तो दो या तीन प्रमुख स्लेश के उपयोग पर या फिर पिछड़े बनाम पिछड़े स्लैश के उपयोग पर सर्वसम्मति नहीं होती है। – MSalters

+0

देर टिप्पणी, मुझे पता है। लेकिन क्या प्रोटोकॉल हैंडलर के बिना यूआरएल पैरामीटर * केवल * तक पहुंचना भी संभव है? –

10
  1. Start तो Find में टाइप करने के लिए जाएं regedit -> यह Registry editor

  2. क्लिक खोलना चाहिए राइट माउस पर HKEY_CLASSES_ROOT तो New ->Key

enter image description here

,210
  1. कुंजी में लोअरकेस नाम है जिसके द्वारा आप चाहते हैं यूआरएल के नाम से जाना दे तो testus पर राइट माउस क्लिक करें (मेरे मामले में यह testus://sdfsdfsdf हो जाएगा) -> तो New ->String Value और बिना मूल्य के URL protocol जोड़ें।

enter image description here

  1. की तरह आप प्रोटोकॉल के साथ किया था तब अधिक प्रविष्टियां जोड़ने (राइट माउसNew ->Key) और testus तरह पदानुक्रम बनाने ->shell ->open ->command और command.exe को उस पथ पर बदलें जहां आप लॉन्च करना चाहते हैं, यदि आप अपने exe पर पैरामीटर पास करना चाहते हैं तो "" में exe को पथ लपेटें औरजोड़ेंकी तरह लग रहे करने के लिए: "c:\testing\test.exe" "%1"

enter image description here

    अगर यह काम करता है Internet Explorer (नहीं Chrome या Firefox) के लिए जाना
  1. परीक्षण करने के लिए और testus:have_you_seen_this_man दर्ज इस सक्रिय किया जाना चाहिए अपने .exe (देना आप कुछ संकेत देते हैं कि आप ऐसा करना चाहते हैं - हाँ कहें) और तर्क testus://have_you_seen_this_man में प्रवेश करें।

यहां परीक्षण का नमूना सांत्वना अनुप्रयोग है:

using System; 

namespace Testing 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if (args!= null && args.Length > 0) 
      Console.WriteLine(args[0]); 
      Console.ReadKey(); 
     } 
    } 
} 

आशा इस आप कुछ समय की बचत होती है।

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