알아두면 좋은 정보

사용자 커스텀 프로토콜 만들기

AYAYz 2023. 8. 31. 00:08

가끔 보면 브라우저에서 "무슨무슨 앱으로 여시겠습니까?" 하면서 컴퓨터에 깔려있는 프로그램을 여는 경우가 있다.

간단하게 알아보려면 브라우저 콘솔에

window.open("calculator://");

를 실행해 보자 

이렇게 뜨면서 계산기를 열겠냐고 한다. 그럼 계산기가 열린다.

이게 어떻게 구현되어있는거냐 하고 조사해보니

레지스트리에 등록하는 거였다. 

HKEY_CLASSES_ROOT 에 들어가보자

쭈우우욱 내려가다보면 calculator 라는 녀석이 보인다. 

보면 안에 URL:calculator 와 URL Protocol 이라고 써있는 것이 보인다. 

딱봐도 이 녀석들이 관여되어 있는 것 같은데,,,,,,, 솔직히 저거 말고는 텅텅 비어있어가지고 뭘 어떻게 한 건지 모르겠다.

그래서 다른 예시를 살펴보았다.

window.open("kakaoopen://");

이 녀석이다.

이렇게 구현되어있다. 

똑같이 URL Protocol 이 있는 것은 보인다. 

shell, open 에는 별다른 내용이 없다. 

command에

"프로그램주소" "%1"

라고 적혀있다. 

지금까지 원래 있던 애들 바탕으로 분석을 해보았다.

직접 만들어보자!!!

이를 활용해서 한번 디스코드 프로토콜을 만들어보자

window.open("discordopen");

일단 실행해보면 없어서 뭐 없다고 나온다.

HKEY_CLASSES_ROOT 에 우클릭 해서 새로 만들기 -> 키 를 통해 discordopen을 만들고

discordopen 에다가 새로 만들기 해서 아래 사진처럼 쭉쭉 만들면 된다.

 

discordopen 에는 kakaoopen 에 있던 것 처럼 URL Protocol 이름을 만들어 놓자.

새로 만들기 -> 문자열 값 을 눌러서 하나 만들고

URL Protocol 이라고 해놓자.

그리고 command 에는 아까 봤던 것처럼 

"C:\ProgramData\js\Discord\app-1.0.9016\Discord.exe" "%1"

라고 해놓는다. 

그리고 레지스트리를 수정했으니 컴퓨터를 한번 다시 시작해주자.

그리고 이제???

window.open("discordopen://");

 

^~^!!!!!

잘된다~

 

근데 지금 보니까 Discord:// 라고 이미 있다 엉엉..