[windows] Windows에서 사용자 지정 URL 프로토콜을 등록하려면 어떻게합니까?

이메일이나 웹 페이지의 링크를 클릭 할 때 애플리케이션이 열리고 URL의 매개 변수가 전달되도록 Windows에 사용자 정의 프로토콜을 등록하려면 어떻게해야합니까?



답변

  1. Start그런 다음 Find유형으로 이동 regedit-> 열어야합니다.Registry editor

  2. 클릭 Right MouseHKEY_CLASSES_ROOT다음 New->Key

여기에 이미지 설명 입력

  1. 키에서 URL을 호출 할 소문자 이름을 입력 한 다음 (내 경우에는 testus://sdfsdfsdf) -> 그런 다음 -> 를 클릭 Right Mouse하고 값없이 추가 합니다.testusNewString ValueURL protocol

여기에 이미지 설명 입력

  1. 그런 다음 프로토콜 ( Right Mouse New-> Key)에서 했던 것처럼 더 많은 항목을 추가 하고 testus-> shell-> open-> command와 같은 계층 구조를 만들고 시작하려는 경로의 내부 command변경 사항 은 매개 변수를 exe에 전달하려는 경우 경로를 exe로 래핑합니다. 에 와 추가 처럼 보이도록 :(Default).exe"""%1""c:\testing\test.exe" "%1"

여기에 이미지 설명 입력

  1. 작동하는지 테스트하려면 Internet Explorer( Chrome또는 Firefox아님)으로 이동하여 입력하십시오 ( testus:have_you_seen_this_man.exe작업을 수행하려는 프롬프트를 제공하십시오-Yes라고 말하십시오) 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();
        }
    }
}

이것이 시간을 절약하기를 바랍니다.


답변

MSDN에서 다루고 있다고 생각합니다 . URL 프로토콜에 응용 프로그램 등록을 참조하십시오 .


답변

MSDN 링크는 좋지만 보안 정보는 완전하지 않습니다. 핸들러 등록에는 % 1이 아니라 “% 1″이 포함되어야합니다. 일부 URL 소스는 사용자 지정 프로토콜 처리기를 호출하기 전에 % 20을 잘못 디코딩하기 때문에 이는 보안 조치입니다.

추신. URL 매개 변수뿐만 아니라 전체 URL을 얻을 수 있습니다. 그러나 URL은 이미 언급 된 % 20-> 공간 변환 외에 약간의 잘못 처리 될 수 있습니다. URL 구문 디자인을 보수적으로 만드는 데 도움이됩니다. // 무작위로 던지지 마십시오. 그렇지 않으면 file : //이 엉망이 될 것입니다.


답변