Windows Script Host Object Model (Ver 1.0) (C:\WINNT\System32\wshom.ocx)을 이용하면 레지스트리 읽기, 쓰기, 파일 실행 등을 자유자재로 구사할 수 있다.
다음은 프로그램상에서 다른 특정 파일을 실행하는 명령들이다.
1. WScript.Shell : Windows Script Host Object Model (Ver 1.0)을 이용한 예제
Dim lngFlag as Long
Dim ws As IWshShell_Class
Const SW_SHOW = 5
Set ws = New IWshShell_Class
lngFlag = ws.Run("cmd.exe /c dir C:\ /w | more", SW_SHOW)
Set ws = Nothing
2. VB 기본 제공 - Shell 명령을 이용한 예제
lngFlag = Shell("cmd.exe /c dir C:\ /w | more", vbNormalFocus) ' vbNormalFocus = 1
AppActivate "명령줄 실행" ' 실행 후 다시 이 프로그램으로 포커스를 이동시킴.
3. Win32 API를 사용한 예제
lngFlag = ShellExecute(Me.hwnd, "open", "cmd.exe", "/c dir C:\ /w | more", "C:\", SW_SHOW)
위 세가지 예제는 모두 동일하게 명령줄 명령을 실행하게 된다.
(물론 마지막 ShellExecute 함수는 Win32 API로 정의되어 있어야 한다.)
첫번째 예제에서 사용된 IWshShell_Class는 ASP에서도 호출하여 사용할 수 있다.
다음은 ASP상에서 실행하는 예제이다.
4. ASP에서 실행한 예제
Dim lngFlag
Dim ws
Set ws = Server.CreateObject("WScript.Shell")
lngFlag = ws.Run("cmd.exe /c dir C:\ /w | more")
Set ws = Nothing
물론 이 결과가 웹 브라우저상에 표시되지는 않는다. (표시하기 위해서는 결과를 파일로 저장한 다음, FileSystemObject를 사용하여 파일을 읽어 출력해야 한다.)
※ 이 ASP 코드를 잘못 이용하면 서버에 심각한 악영향을 미칠 수 있으므로 최대한 주의해야 한다. 운영 또는 보안 관계자들은 서버에 올라가 있는 게시판이나 자료실 등에서 이러한 코드가 포함된 ASP 파일이 업로드되거나 실행되지 않도록 각별히 노력해야 한다.
'Tech: > ASP·VB6' 카테고리의 다른 글
VB-RDS (Remote Data Service) 사용 (0) | 2008.06.26 |
---|---|
VB-에러처리에 관련된 팁 (0) | 2008.06.26 |
VB-SystemMonitor 사용하기 (0) | 2008.06.26 |
Window2000에서의 MSMQ 사용 (0) | 2008.06.26 |
VB-메시지박스 자동 종료하기 (0) | 2008.06.26 |