[JavaScript] 웹(Chrome)에서 응용 프로그램 실행 시키기 : Registry 이용한 Custom URL schemes 방식 호출
만약 프로젝트를 각 PC 배포하여 사용한다면 사용자의 레지스트리를 수정할 필요없이 Java로 간단히 해결되니, 그런 경우는 아래 게시글을 참고하자.
웹에서 응용프로그램(.exe)를 실행시키는 방법을 살펴보자.
보통 ActiveX 를 이용하여 응용프로그램을 실행시키지만, 해당 방식은 IE에서 사용이 가능하다.
IE를 지양하는 추세이기에 오늘은 Chrome에서의 실행방법을 살펴볼 것이다.
만약 IE 브라우저에서 사용해야한다면 아래 게시글을 참고하자.
1. 레지스트리(Registry) 에 실행시킬 응용 프로그램 경로를 설정한다.
1) 레지스트리 실행
2) 호출 URL에 들어갈 APP명으로 키 생성
HIKEY_CLASSES_ROOT - 우클릭 - 새로만들기 - KEY (test)
3) 생성한 KEY(test)에 문자열 등록
KEY 우클릭 - 새로 만들기 - 문자열 값
생성한 문자열 값의 "이름"을 URL protocol 로 수정한다.
4) 하위 KEY 생성
KEY(test) 하위에 동일한 방법으로 shell - open- command 순으로 하위 키를 생성한다
5) KEY(command)의 (기본값) 문자열 값 수정
기본값 항목의 데이터를 "응용프로그램 절대경로" "%1" 로 수정한다.
"C:\ULSAN_BIS\VNC\vnc-viewer.exe" "%1"
"%1" 은 응용 프로그램 실행 시 args[]에 들어가는 인자값으로 지정하되, 호출 시 사용하지 않아도 무방하다.
2. 웹에서 지정된 레즈스트리(Registry)를 바라보는 URL을 호출하여 실행시킨다.
1) html 코드
// href="레지스트리KEY명://"
<a href="test://">실행</a>
// 인자값을 넘기는 경우 (VNC.exe 파일 실행하면서 접속하려는 서버와 포트를 인자 값으로 넘김)
<a href="test://127.0.0.1:5900">실행</a>
3. 결과
Registry 등록할 때, 인자 값 설정부분을 빼고 하면 아래처럼 실행이 잘된다.
하지만 인자 값 설정("%1")을 하고 실행을 시키게되면, 실제로 인자 값을 넘기든 안넘기든 실행되지 않았다.
결과는 RealVNC 구버전, 최신버전 모두 마찬가지였다.
이 경우의 해결방안은 다음 포스팅으로 오겠다...
'Front > JavaScript' 카테고리의 다른 글
[Javascript] 자바스크립트 strict mode(엄격 모드)에 대해 (0) | 2022.03.17 |
---|---|
[JavaScript] Custom URL schemes 방식의 VNC 응용프로그램 (서버IP 인자 값 넘기며) 호출 (0) | 2022.01.13 |
[JavaScript] 웹브라우저 동작원리 (Stack, Queue, Event Loop) (0) | 2021.11.01 |
[Javascript] OR 연산자와 Default Parameter(ES6), Nullish coalescing(ES11) 차이점 (0) | 2021.11.01 |
[Javascript] 알아두면 좋은 ES11 최신 문법 : Optional Chaining, Nullish Coalescing (0) | 2021.10.30 |
댓글