이메일이나 웹 페이지의 링크를 클릭 할 때 애플리케이션이 열리고 URL의 매개 변수가 전달되도록 Windows에 사용자 정의 프로토콜을 등록하려면 어떻게해야합니까?
답변
-
Start
그런 다음Find
유형으로 이동regedit
-> 열어야합니다.Registry editor
-
클릭 Right Mouse에
HKEY_CLASSES_ROOT
다음New
->Key
- 키에서 URL을 호출 할 소문자 이름을 입력 한 다음 (내 경우에는
testus://sdfsdfsdf
) -> 그런 다음 -> 를 클릭 Right Mouse하고 값없이 추가 합니다.testus
New
String Value
URL protocol
- 그런 다음 프로토콜 ( Right Mouse
New
->Key
)에서 했던 것처럼 더 많은 항목을 추가 하고testus
->shell
->open
->command
와 같은 계층 구조를 만들고 시작하려는 경로의 내부command
변경 사항 은 매개 변수를 exe에 전달하려는 경우 경로를 exe로 래핑합니다. 에 와 추가 처럼 보이도록 :(Default)
.exe
""
"%1"
"c:\testing\test.exe" "%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 : //이 엉망이 될 것입니다.