IT

웹브라우저에서 프로그램 실행하기

쏘펀 2024. 3. 6.

토렌토 사이트에서 토렌토 링크를 클릭하면 내 PC에 설치된 토렌토 프로그램이 실행되는 것을 보고 어떻게 ActiveX없이 구현한건지 찾아봤음

 

URI Scheme

확인해보니 URI Scheme를 이용해서 동작시키는 방식이었다!!

(URI Scheme는 인터넷 주소에서 콜론(:)까지의 정보를 말합니당)

 

이 URI Scheme는 대부분의 OS에서 직접 등록하고 설정할 수 있으나, OS마다 등록하는 방법은 다르다고 함....왜 굳이....통일 좀 시키지....

나는 Windows에서 한번 등록시켜서 동작 시켜봄.

 

URI Scheme 등록 방법

등록 방법은 어렵지 않음. 그냥 registry에 값을 넣어주면 됨. (자세한건 여기)

 

1. 실행창이나 검색창에서 regedit를 실행 하고

2. HKEY_CLASSES_ROOT에서 마우스 오른쪽 클릭 > 새로 만들기 > 키 생성(이 키이름이 나중에 URI Scheme 명으로 사용됨). 난 testURI 이름으로 생성함

3. 추가된 키에 문자열 값 추가. 이름은 URL Protocol로 하고 안에 데이터는 빈값으로

4. 여기서 이제 추가로 키를 더 생성해줌. (shell \ open \ command).

즉 testURI(이건 내가 지정한 이름) \ shell \ open \ command 이런 식으로

5. 그리고 command키에 있는 (기본값)의 데이터에 실행할 프로그램 경로를 넣어줌

경로 앞뒤로 쌍따옴표("") 들어가야 함!! 그리고 실행할 때 파라미터 전달하고 싶으면 경로 뒤에 한칸 띄워서 "%1" 추가하면 됨

이러면 등록 끝!!

 

동작 테스트

웹브라우저 주소창에 내가 만든 URI Scheme 이름을 입력하면 됨. 초간단. 내가 만든 이름은 testURI이니까 뒤에 :// 까지 붙여서 실행해주면

요렇게 팝업이 뜨고 열기를 클릭하면 엑셀이 실행된다아~

엑셀 실행 두둔!!

 

추가적으로 엑셀에 파라미터를 전달해서 기존에 존재하는 문서를 열어볼까 했는데....

"%1" 추가
야무지게 파일 경로 파라미터로 전달

아래처럼 에러가 남

파라미터를 전달하게 되면 뒤에 있는 파라미터값만 가는 것이 아닌 URI Scheme까지 파라미터로 같이 전달되는 것을 확인할 수 있었다.....내가 브라우저에 입력하는 링크 주소 전체가 파라미터로 전달되기 때문에 파라미터 전달하는 기능은 아예 프로그램을 직접 만들어서 받은 파라미터를 잘라내서 사용하도록 해야할 듯....!!

댓글