본문 바로가기

C#

WebPage에서 컴퓨터에있는 exe파일 실행하기 #1

반응형

어찌 보면 단순한 이야기일 수도 있겠지만, 실제로 하려다 보니 여러 가지 문제가 생겨서 
해결 과정을 글로 남겨두려고 한다.

하려고 하는것은 WebPage에서 로컬 PC 내부에 저장되어있는 exe 파일을 실행하는 것이다.

처음 시작하기전에 생각한 것은 아래와 같다.

1. ActiveX를 사용해서 로컬PC의 파일을 다이렉트로 실행한다. 
2. 레지스트 등록을 통해서 정해진 키값을 WebPage내부에서 Script 호출해서 사용한다. 
3. 브라우져에서 파일접근 확인창이 매번 뜨지않도록 제어한다.(Chrome, IE, Edge)

 

■참고

ActiveX 사용에 대한 참고문서

 

방법: ActiveX 컨트롤 사용 - Visual Basic

방법: ActiveX 컨트롤을 사용하여 작업(Visual Basic)How to: Work with ActiveX Controls (Visual Basic) 이 문서의 내용 --> ActiveX 컨트롤은 웹 페이지 또는 다른 응용 프로그램에 삽입 하 여 다른 사용자가 프로그래

docs.microsoft.com

WindowsAPI호출

 

연습: Windows API 호출 - Visual Basic

연습: Windows API 호출(Visual Basic)Walkthrough: Calling Windows APIs (Visual Basic) 이 문서의 내용 --> Windows Api는 Windows 운영 체제의 일부인 Dll (동적 연결 라이브러리)입니다.Windows APIs are dynamic-link libraries (DLLs)

docs.microsoft.com

시작 전에 생각한 문제점
1. 인터넷 브라우저에 특정되지 않는가? (IE 외에는 ActiveX 실행이 어렵지 않을까?)
2. 레지스트 등록은 관리자 권한이 없으면 안 된다.


천리길도 한걸음부터….
우선, 하나하나 시작해보도록 한다.

1. ActiveX를 사용해서 로컬 PC의 파일을 디렉트로 실행한다.

<script LANGUAGE="JavaScript">
function cmd() {
    var obj = new ActiveXObject("WScript.Shell");
    obj.Run("C:\\test\\sample.exe");
}
</script>
<body>
---ActiveX Sample---<br><br>
<a href="javascript:cmd()">ActiveX sample</a><br>
</body>

단순히 위와 같은 코드로 효과를 볼 수가 있다.
실행하면 아래와 같이 된다.

아랫부분의 하이퍼링크를 클릭하면 sample.exe 가 실행된다.
하지만, 예외 없이 경고창이 등장한다. (필자가 일본에 있어서, 일본어판 윈도를 사용하고 있습니다.)

이 페이지의 ACtiveX 컨트롤은 안전하지 않을 가능성이 있고, 페이지 외의 부분에서 영향을 끼칠 수 있습니다. 다른 부분의 영향에 대해 문제가 없습니까?

라고 나오는데, 뭐 실행을 시켜야 하니까 그냥 Y로 속행~~ 하면, 실행이 된다.

다음 편에서는 

레지스트 등록을 통해서 정해진 키값을 WebPage내부에서 Script 호출해서 사용한다. 

에 대해서 다루어 보도록 하겠다.

반응형