티스토리 뷰


웹페이지에서 버튼 눌렀을 때 EXE 파일을 실행시켜야 한다.

찾아보니 소스가 많다. (IE에서)

IE에서는 ActiveX를 사용할 수 있어서 exe 파일을 실행시킬 수 있는데ㅠㅠ

Chrome 에서는 ActiveX를 사용할 수 없다고 한다.

크롬에서 ActiveX의 기능을 해주던 NSAPI라는 플러그인이 있었으나, 사라졌단다.


구글검색해보니까, 

보안상의 문제가 어쩌고 저쩌고 하는데 그래도 어떻게든 만들어 내야한다. (!)


내가 찾아본 결과, Chrome에서 ActiveX를 지원해주는 Plugin이 있다고 하는데

그걸 유저가 각각 받으려고 하지 않을테니 안되고.

도움을 받아 힌트를 얻었으나, 아직 1도 못하고 있다.

그거시 PPAPI인데 구글 검색해봤는데 전부 영어...여엉!어어어!!

          : 웹서버가 브라우저를 통해 클라이언트 PC내의 프로그램을 호출하기 위한 API



*브라우저가 IE인지, 크롬인지 구별하여 IE에서 메모장 실행시키는 소스

  - useragent 값 얻어와서 브라우저 문자열 검색. indexOf 는 파라미터 문자열이 해당 문자열에 포함되어 있지 않을 경우 -1을 리턴한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
  <mata charset="utf-8" />
<head>
<script language="javascript">
 
var agent = navigator.userAgent.toLowerCase();
if ( (navigator.appName == 'Netscape' && navigator.userAgent.search('Trident'!= -1|| (agent.indexOf("msie"!= -1) ) {
    /*alert("Internet Explorer"); */
    function aa()
    {
    var objWSH = new ActiveXObject("WScript.Shell");
    var retval = objWSH.Run("C:/Windows/SysWOW64/notepad.exe",1,true);
    }
}
 
else if (agent.indexOf("chrome"!= -1) {
  function aa()
  {
    /*alert("HAVE TO INSTALL."); */
    var objWSH = new ActiveXObject("WScript.Shell");
    var retval = objWSH.Run("C:/Windows/SysWOW64/notepad.exe",1,true);
  }
}
</script>
<body>
<input type="button" name="test" onclick="aa();">
</body>
</html>
cs


참고 : http://ooz.co.kr/67

댓글