Programing/JavaScript

Javascript 로컬 파일 실행, 윈도우 프로그램 실행하기 ActiveXObject

리커니 2017. 3. 15.
반응형

 

Javascript 로컬 프로그램, 윈도우 프로그램 실행하기 ActiveXObject

 

고객요청사항으로 돋보기 같은 기능을 구현해 달라는 요청을 받았습니다...

이미지 돋보기는 여타 많은 쇼핑몰 사이트에 구현이 되어

라이브러리나 소스들이 많지만, 이번 요청은 이미지가 아닌 브라우저 전체 돋보기 기능이였습니다.

 

그래서 생각한게 윈도우에 있는 돋보기 기능을 활용하면 어떨까 하는 것이였습니다.

하지만 이는 브라우저 설정에서 ActiceX 관련 설정을 풀어주어야 합니다..(보안상 문제가 될 수 있음)

(IE 11 기준)

 

그럼 소스를 우선 보도록 하시죠.

 

 

 - 텍스트 소스

function magnifier(){
 try{
     var objWSH = new ActiveXObject("WScript.Shell");
     var retval = objWSH.Run("%SystemRoot%\\System32\\magnify.exe");  
 }catch(exception){
  alert("인터넷옵션>인터넷>사용자지정수준>스크립팅하기 안전하지 않은 것으로 표시된 ActiveX 컨트롤 초기화를 '확인'으로 수정하셔야 정상작동 합니다");
 }

 

Window System32 폴더에 접근하여 exe파일을 실행하는 방법입니다.

브라우저의 설정을 바꿔주지 않는다면 아래와 같은 에러가 발생합니다.

 

 

 

 

해당 에러를 발생시키지 않기 위해선 아래와 같이 브라우저의 설정을 바꾸어 줍니다.

 

 

 

인터넷 옵션>보안탭>인터넷 및 로컬인트라넷 에서

'사용자 지정 수준(C).. 를 선택합니다.

 

 

그 후 스크립팅하기 안전하지 않은 것으로 표시된 ActiveX 컨트롤 초기화를 '확인'으로 선택하시면 됩니다.

그럼 해당 함수 실행 시 돋보기가 실행됩니다.

 

 

 

그외 실행 파일

 

 notepad.exe

 메모장

 mspaint.exe

 그림판

 mstsc.exe

 원격연결

 SnippingTool.exe

 캡처도구

 calc.exe

 계산기

 write.exe

 워드패드

 control.exe

 제어판

 cmd.exe

 커맨드 창

 SndVol.exe

 스피커 볼륨제어

 resmon.exe

 리소스 모니터링

 perfmon.exe

 성능 모니터링

 

 

위 방법은 유용할 순 있지만 보안상 문제가 될 수 있어 적절한 활용이 필요할 것 같습니다.

 

특정 경로에 있는 .exe 파일을 실행하기 위해선

아래와 같이 사용합니다.

 

var path = "C:\\file\\start.exe"; 

var filePath = String.fromCharCode(34)+path+String.fromCharCode(34);

var objShell = new ActiveXObject("WScript.Shell");
objShell.Run(filePath);

 

파일이나 경로에 공백이 있을 경우 실행에 제한이 될 수 있으니 주의 하시기 바랍니다.

 

반응형

댓글

💲 추천 글