HTA 에서 프로그램 시작

어떻게 HTA 에서 프로그램 을 시작 합 니까?가:안녕하세요,스 크 립 트 전문가!HTA 에 대해 Wscript.Shell 명령 을 대체 할 수 있 는 것 이 있 습 니까?어떤 프로그램 을 실행 하고 열 파일 을 지정 해 야 합 니 다.-DL 답:안녕하세요,DL.예,저 희 는 이러한 명령 이 HTA 에서 사용 되 고 Wscript.Shell 명령 을 대체 할 수 있다 는 것 을 확실히 알 고 있 습 니 다.곧 소개 해 드 리 겠 습 니 다.단,그것 을 소개 하기 전에,우 리 는 당신 이 실제로 HTA 에서 Wscript.Shell 대상 을 사용 할 수 있다 는 것 을 알 아야 합 니 다.이것 은 자주 헷 갈 리 는 부분 입 니 다.HTA 에서 어떤 명령(예 를 들 어 Wscript.Echo 와 Wscript.sleep)을 사용 할 수 없 기 때문에 사람들 은 HTA 에서 어떠한 WSH 명령 도 사용 할 수 없다 고 생각 합 니 다.계속 하기 전에 질문 이 하나 더 있 습 니 다.왜 HTA 에서 Wscript.Echo 와 Wscript.sleep 을 사용 할 수 없 습 니까?이 방법 들 은 Wscript 대상 의 속성 입 니 다.Wscript 대상 인 스 턴 스 를 만 들 수 없습니다.Wscript 대상 은 자동 으로 생 성 되 며,Windows Script Host(즉 Wscript.exe 또는 Cscript.exe)를 실행 할 때 만 생 성 됩 니 다.이 점 때문에 다음 스 크 립 트 가 절대적 으로 유효 하 다 고 말 할 수 있 습 니 다

Wscript.Echo "Hey."
우 리 는 Wscript 대상 을 만 들 지 않 았 습 니 다.이 대상 은 우리 가 윈도 스 크 립 트 Host 를 호출 할 때 자동 으로 만 들 어 졌 습 니 다.다만 이 는 Wscript 대상 에 국한 된다.셸 대상 을 포함 하여 만 들 수 있 는 다른 WSH 대상 도 있 습 니 다.예 를 들 어 다음은 간단 한 작은 HTA 입 니 다.Wscript.Shell 대상 을 만 들 고 Notepad.exe 를 실행 합 니 다.RunProgram 의 코드 를 보 세 요

<html>
<head>
<script language="VBScript">
Sub RunProgram
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "notepad.exe c:\scripts\test.txt"
End Sub
</script>
</head>
<body>
<button onclick="RunProgram">Run Program</button> <p>
</body>
</html>
바로 이 렇 습 니 다.저 희 는 Wscript.Shell 대상 의 인 스 턴 스 를 만 들 고 Run 방법 을 호출 합 니 다.이렇게 하면 Run 에 단일 인 자 를 전달 합 니 다.파일 이름(notepad.exe)을 실행 한 다음 에 열 려 는 파일 의 경 로 를 전달 합 니 다.이것 이 바로 우리 가 해 야 할 모든 것 이다.참고 로 HTA 에서 이 스 크 립 트 를 실행 하면 문제 가 되 지 않 습 니 다.HTML 파일(즉,파일 확장자.htm 파일)에서 실행 하려 고 시도 하면 메시지 상자 가 표 시 됩 니 다.페이지 에서 실행 하려 는 ActiveX 컨트롤 이 있 음 을 경고 합 니 다.이 하위 루틴 에서 셸 대상 을 만 들 고 실행 하려 면 누 르 십시오.WSH 대상 이'스 크 립 트 작성 에 안전 하지 않다'는 인식 을 받 기 때문이다.메모:네,이상 하 게 들 립 니 다.스 크 립 트 작성 대상 이 스 크 립 트 작성 에 안전 하지 않다 고 생각 합 니 다.그러나 이 는 Internet Explorer 가 WSH 와 다른 스 크 립 트 숙주 와 다른 보안 모델 을 사용 하기 때문이다.다행히 HTA 는 Internet Explorer 와 다른 보안 모델 을 사용 합 니 다.이것 은 HTA 에서 Shell 대상 을 만 들 때 이 문제 가 발생 하지 않 는 다 는 것 을 의미 합 니 다.그렇다면 그 대체 명령 을 사용한다 면?네,어떤 이유 로 Wscript.Shell 대상 을 사용 하고 싶 지 않 으 면 Windows Shell 대상 으로 바 꿀 수 있 습 니 다.아래 의 HTA 도 메모 장 을 시작 하고 파일 을 열 수 있 습 니 다.C:\Scripts\Test.txt:

Sub RunProgram
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "notepad.exe c:\scripts\test.txt"
End Sub
솔직히 Windows Shell 대상 을 사용 하 는 것 은 Wscript.Shell 대상 을 사용 하 는 것 에 비해 진정한 장점 이 없다 고 생각 합 니 다.이 두 대상 의 기능 은 기본적으로 같 습 니 다.단,Windows Shell 을 만 지 려 면 Shell Execute 방법 에 관 한 문 서 를 찾 아 보 세 요.중요 한 것 은 이 점 이다.HTA 에서 프로그램 을 시작 하려 면 두 가지 방법 을 모두 사용 할 수 있다.

좋은 웹페이지 즐겨찾기