인터넷을 하다 보면 URL 링크나 버튼을 누르면 프로그램이 실행되는 경우가 있습니다.
ActiveX도 이제 못쓰는데 어떻게 하는 것일까요?
결론은 모두 URI Scheme를 사용하는 것이었습니다.
URI Scheme
우리가 일반적으로 볼 수 있는 인터넷 주소 중 시작부터 ':'(콜론)까지의 정보가 URI Scheme입니다.
- https://www.naver.com
- ftp://192.168.0.1
기타 URI Scheme에 대한 정보는 여기에서 확인할 수 있습니다.
Custom URI Scheme
공식적으로 관리되는 URI Scheme 외에 사용자가 직접 URI Scheme를 만들 수도 있습니다. 대부분의 OS에서 URI Scheme를 직접 등록하고 설정할 수 있도록 지원하고 있으며 Andriod, iOS, Windows 등 OS에 따라 등록하는 방법은 다릅니다.
실제로 프로그램을 설치할 때마다 각 프로그램들은 자신만의 URI Scheme를 시스템에 등록합니다. 예를 들어 카카오톡을 깔면 kakaolink라는 URI Scheme가 시스템에 등록됩니다.
Custom URI Scheme를 Windows에서 등록하는 방법
Windows에서는 registry에 URI Scheme를 등록할 수 있습니다. 이것에 대한 공식 문서는 여기에 있습니다.
결론부터 말하면 registry에 다음과 같이 등록하면 됩니다.
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
자세한 절차는 다음과 같습니다.
1) Windows key + R
2) regedit 입력
3) HKEY_CLASSES_ROOT에서 마우스 오른쪽 클릭 > 새로 만들기 > 키 선택
4) URL Scheme로 사용할 값 입력(여기서는 alert)
5) 추가된 키 문자열 값 URL Protocol 추가 (value는 공백(""))
6) alert > shell > open > command를 추가
7) command의 기본값에 실행될 프로그램의 경로를 입력
- 경로의 앞뒤로 쌍따옴표를 붙여야 합니다. 만약 실행 시 매개변수를 넘기고 싶다면 경로 뒤에 한 칸 띄우고 "%1"를 추가합니다.
동작 확인
1) 다음과 같이 html문서를 작성
<html>
<body>
<a href="alert://helloworld">실행</a>
</body>
</html>
2) 브라우저에서 "실행" 클릭
3) alert창에서 "열기" 버튼 클릭
4) 프로그램 실행 확인
"%1"가 없으면 프로그램이 잘 실행되지만 "%1"이 있는 경우 다음과 같은 오류가 발생하는 것을 확인할 수 있습니다.
URL Scheme에서 parameter 처리 방법
링크 주소가 alert://helloword 일 때, alert은 URL Scheme이고, helloword가 파라미터일 것 같은데 실제로는 파라미터가 아래와 같이 호출됩니다.
notepad++.exe alert://helloworld
즉, 링크 전체 주소가 파라메터로 전달되기 때문에 이것을 가공하여 처리해야 합니다.
[참고 사이트]
Custom URI Scheme 만들기
인터넷을 하다가 URL 링크가 특정 어플리케이션과 연결되는 경우가 있다. 어떻게 이걸 구현했을까 정보를 찾아 여기에 정리하였다. 모두 URI Scheme를 통해서 구현하는 것이었고 구현도 생각보다
nsinc.tistory.com
Windows 환경에서 Custom Uri Scheme 활용
Window 환경에서 브라우저를 통해 클라이언트 호출을 하게될 일이 생겼습니다. 다음의 방법을 이용하면 특정 URL을 이용해 Windows 환경에서 프로그램을 실행 시킬 수 있습니다. Window 의 Custom URI Schem
ukprog.tistory.com
'OS > Windows' 카테고리의 다른 글
Internet Explorer 11실행 시 강제로 Edge 실행되는것 차단하는 방법 (7) | 2023.03.13 |
---|---|
[Windows] .bat 파일을 이용하여 파일 자동으로 삭제하는 방법 (0) | 2023.02.16 |
Windows Server 2019 - 원격 데스크톱 세션 수 제한 설정하는 방법 (0) | 2023.01.30 |
Windows 이메일 서버 hMailServer 설치하는 방법 (0) | 2022.11.09 |
windows server에 .net framework 설치하는 방법 (0) | 2022.11.09 |