Thursday, September 11, 2014

ASP 외부프로그램 실행

ASP에서 외부 프로그램을 실행하는 방법은 COM+을 만들어서 함수를 호출하던가 아니면 exe 프로그램을 만들어서 프로세스를 생성하는 방법이 있다. 그러나 윈도우 2008이나 호스팅업체에서 COM+을 이용을 하지 못할때 exe를 만들어서 사용하면 원하는 기능을 사용할 수 있다.

다음과 같이 WScript.Shell이라는 COM을 사용하면 exe를 호출할 수 있다. 리턴값을 받기 위해서는 ret=wshell.run(cmd, 0, true)할 때 마지막 parameter를 true로 주어야 한다. 리턴이 올때까지 기다린다는 뜻이다.

만약 호출하는 exe가 윈도우 프로그램이거나(윈도우 메세지 루프를 가져서 프로그램이 끝나지 않음) 또는 파일을 쓰는 (FILE* 등)프로그램이면 리턴이 되지 않고 멈춰버린다.

'절대패스로 지정해야함
exe = "C:\testweb\test.exe"
cmd = exe + "arg1 arg2 ..."

'객체 생성
dim wshell
set wshell = server.createobject("wscript.shell")
response.write cmd&"<br>"

'객체 생성 실패시 에러
if wshell is nothing then
    response.write "S201:WScript.Shell Initialization Failure"
end if

'외부 프로그램 실행후 리턴값 받아서 화면에 출력
ret=wshell.run(cmd, 0, true)
response.write ret

'객체 소멸
set wshell=nothing

No comments:

Post a Comment