ฉันจะลงทะเบียนโปรโตคอล URL ที่กำหนดเองใน Windows ได้อย่างไร


89

ฉันจะลงทะเบียนโปรโตคอลที่กำหนดเองกับ Windows ได้อย่างไรเมื่อคลิกลิงก์ในอีเมลหรือบนหน้าเว็บแอปพลิเคชันของฉันจะเปิดขึ้นและพารามิเตอร์จาก URL จะถูกส่งไปยังโปรโตคอลนั้น


คำตอบ:


65
  1. ไปที่Startแล้วในFindประเภทregedit-> ควรเปิดRegistry editor

  2. คลิกRight MouseบนHKEY_CLASSES_ROOTแล้วNew->Key

ป้อนคำอธิบายภาพที่นี่

  1. ในคีย์ให้ชื่อตัวพิมพ์เล็กที่คุณต้องการให้เรียก URL (ในกรณีของฉันจะเป็นtestus://sdfsdfsdf) จากนั้นคลิกRight Mouseที่testus-> แล้วNew-> String Valueและเพิ่มURL protocolโดยไม่มีค่า

ป้อนคำอธิบายภาพที่นี่

  1. จากนั้นเพิ่มรายการเพิ่มเติมเช่นเดียวกับที่คุณทำกับโปรโตคอล ( Right Mouse New-> Key) และสร้างลำดับชั้นเช่นtestus-> shell-> open-> commandและภายในcommandเปลี่ยน(Default)เส้นทางที่.exeคุณต้องการเปิดคือถ้าคุณต้องการส่งผ่านพารามิเตอร์ไปยัง exe ของคุณให้ตัดพา ธ ไปที่ exe ใน""และเพิ่ม"%1"ให้มีลักษณะดังนี้:"c:\testing\test.exe" "%1"

ป้อนคำอธิบายภาพที่นี่

  1. เพื่อทดสอบว่าการทำงานไปInternet Explorer(ไม่ได้ChromeหรือFirefox) และป้อนtestus:have_you_seen_this_manนี้ควรยิงของคุณ.exe(ให้แจ้งบางอย่างที่คุณต้องการที่จะทำเช่นนี้ - พูดใช่) และผ่านเข้าไปใน testus://have_you_seen_this_manargs

นี่คือตัวอย่างแอปคอนโซลที่จะทดสอบ:

using System;

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

หวังว่านี่จะช่วยคุณประหยัดเวลาได้บ้าง


3
ว้าวสิ่งนี้ได้ผล และไม่เพียง แต่บน IE เท่านั้น แต่ยังรวมถึง Chrome ด้วย!
user1974566

36

ผมคิดว่านี่จะครอบคลุมใน MSDN โปรดดูการลงทะเบียนโปรแกรมประยุกต์กับพิธีสาร URL


5
ฉันกำลังเขียนแอปพลิเคชันที่ใช้ oauth และขั้นตอนที่อธิบายไว้ใน MSDN ทำงานได้อย่างสมบูรณ์แบบกับ Mozilla Firefox และ Opera (11.6)
Viktor Latypov

11
สิ่งนี้ใช้ได้กับทุกเบราว์เซอร์บน Windows มันเป็นเรื่องระดับระบบปฏิบัติการไม่ใช่ระดับเบราว์เซอร์
Andrew Dunkman

7
ฉันได้รับการโหวตแล้ว แต่โปรดแก้ไขคำตอบเพื่อรวมข้อมูลที่เกี่ยวข้องจากลิงก์ตามนโยบาย SO ขอบคุณ!
dotancohen

Windows เวอร์ชันใดบ้างที่รองรับสิ่งนี้
ᆼᆺᆼ

21

ลิงก์ MSDN นั้นดี แต่ข้อมูลความปลอดภัยยังไม่สมบูรณ์ การลงทะเบียนตัวจัดการควรมี "% 1" ไม่ใช่% 1 นี่เป็นมาตรการรักษาความปลอดภัยเนื่องจากแหล่งที่มา URL บางแห่งถอดรหัส% 20 ไม่ถูกต้องก่อนเรียกใช้ตัวจัดการโปรโตคอลที่กำหนดเอง

ปล. คุณจะได้รับ URL ทั้งหมดไม่ใช่แค่พารามิเตอร์ URL แต่ URL อาจมีการกระทำที่ไม่เหมาะสมนอกเหนือจากการแปลงพื้นที่% 20-> ที่กล่าวถึงแล้ว ช่วยให้ระมัดระวังในการออกแบบไวยากรณ์ URL ของคุณ อย่าสุ่ม // ไม่งั้นคุณจะยุ่งกับไฟล์ที่: // is.


คำว่า "mess that the file: //" คืออะไร?
Maleev

6
ไม่มีการแมปไฟล์อย่างเป็นทางการ: URL ไปยังโลคัลพา ธ ไม่มีแม้แต่ความเห็นพ้องต้องกันในการใช้เครื่องหมายทับสองหรือสามตัวนำหน้าหรือการใช้เครื่องหมายทับไปข้างหน้าและข้างหลังเมื่อพา ธ อ้างถึงไดเร็กทอรี Windows
MSalters

ความคิดเห็นที่ล่าช้าฉันรู้ แต่เป็นไปได้ไหมที่จะเข้าถึงพารามิเตอร์ URL เท่านั้นโดยไม่มีตัวจัดการโปรโตคอล
Danilo Bargen

2
ฟังดูเหมือนคำถามแยกต่างหาก โปรดทำความเข้าใจเงื่อนไขของคุณให้ตรง ตัวจัดการโปรโตคอลคือโปรแกรมที่รับ URL "หากไม่มีตัวจัดการโปรโตคอล" จะไม่มีใครแยกวิเคราะห์ URL และเข้าถึงพารามิเตอร์ URL
MSalters
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.