인터넷을 하다 보면 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
즉, 링크 전체 주소가 파라메터로 전달되기 때문에 이것을 가공하여 처리해야 합니다.
[참고 사이트]
'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 |