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);
파일이나 경로에 공백이 있을 경우 실행에 제한이 될 수 있으니 주의 하시기 바랍니다.
'Programing > JavaScript' 카테고리의 다른 글
javascript 이번주 시작, 끝 날짜 구하기 (2) | 2017.03.30 |
---|---|
정규식 사용 textarea url 자동 하이퍼링크 (0) | 2017.03.21 |
요소의 비활성 readonly, disabled 차이와 사용법 (2) | 2016.09.21 |
자바스크립트 유용한 달력 라이브러리 full calendar 사용법 한글 옵션 적용 (6) | 2016.06.07 |
javascript 자바스크립트 배열의 중복값 제거하는 여러가지 방법 (0) | 2016.06.03 |
댓글