곰플레이어 자동 설치 vbs 샘플은 위의 출처 링크에서 가져왔습니다.

그러나 포커스가 해당 창이 아닐 경우에 키 입력을 계속 받는 문제점이 있었습니다.

그 부분만 보완해서 WaitFor3secActiveWindow() 함수를 추가하였습니다.

좋은 정보 블로그에 올려주신 영산님께 다시 한번 감사의 말씀 드립니다.

곰플레이어 자동 설치 버전 by TTF

XP SP3에서는 SendKeys()를 짧은 시간에 연속으로 입력하지 못하도록 제한한 것으로 추측됩니다.


Option Explicit
  
' 기본 Object 가져오기
Dim Shell : Set Shell = WScript.CreateObject("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WshEnv : Set WshEnv = Shell.Environment("Process")
Dim ProgramDir : ProgramDir = WshEnv("ProgramFiles")
  
'CMD 윈도우 98에서도 적용 가능하게 COMSPEC으로 가져온다.
Dim COMSPEC : COMSPEC = Shell.ExpandEnvironmentStrings("%comspec%")
  
Const GOM_Player_ExeFile = "GOMPLAYERSETUP.EXE"  '고정된 이름은 변수가 아닌 상수로 지정해도 무방..
  
  
If MsgBox ( "곰플레이어를 설치하시겠습니까?  ", 36, "Setup - GomPlayer") = 6 Then
  
    Install GOM_Player_ExeFile, ""
  
    Const Step1 = "곰플레이어 설치"
    Const Step2 = "곰 주소창검색 소개"
  
' Step 1. "곰플레이어 설치"
    WaitForActiveWindow Step1, 10
    SendKeys "{ENTER}"    ' 다음> [엔터]
    SendKeys "{ENTER}"    ' 동의함[엔터]
  
    WaitForActiveWindow Step1, 3
    SendKeys "+{TAB}"  ' 구성 요소 선택 (모든 동영상 확장자 등록 체크)
    SendKeys "{DOWN 6}"  ' 화살표 아래키 6번 입력
    SendKeys " "    ' [SPACE는 공백]
  
    WaitForActiveWindow Step1, 3    
    SendKeys "{ENTER}"    ' 다음> [엔터]
    SendKeys "{ENTER}"    ' 키즈락 선택하지 않고, 다음> [엔터]
    SendKeys "{ENTER}"    ' 설치 위치 선택, 설치> [엔터]
    Wscript.Sleep 14000
  
    WaitForActiveWindow Step1, 3
    SendKeys "{ENTER}"    ' 곰 플레이어 설치 완료, 마침> [엔터]
  
' Step2 . "곰 주소창검색 소개" 설치 취소
    WaitForActiveWindow Step2, 3
    SendKeys "{TAB}"    ' 취소 선택[탭]
    SendKeys "{ENTER}"    ' 곰 주소창 검색 취소 완료, 마침> [엔터]
Else
    Shell.Popup "곰플레이어 설치가 취소되었습니다.   ", 3, "Cancle", 48
    WScript.Quit
End if
  
  
  
Sub Install (InstallFile, Arguments)
  If (FSO.FileExists(InstallFile)) Then
    Shell.Run COMSPEC & " /c " & InstallFile & Arguments &" & Exit", 0
  Else
    Shell.Popup InstallFile & " 을(를) 찾을 수 없습니다.", 3, "File dose not exist", 48
    Wscript.Quit
  End if
End Sub
  
  
Sub WaitForActiveWindow(WindowName, Second)
  if Second < 0 Then
    Shell.Popup "음수 시간을 설정할 수 없습니다.", 3, "Error!", 48
    Wscript.Quit
  End if
  
  Dim TimeOutCount : TimeOutCount = Second * 10
  
  Wscript.Sleep 1   'Winxp SP3에서 AppActivate() 버그 임시 해결용 by TTF
  
  While ( Shell.AppActivate( WindowName ) = False )
  
    if TimeOutCount < 0 Then
      Shell.Popup WindowName & " 윈도우를 찾을 수 없습니다. 실행을 종료합니다.", 5, "Can't Find Window", 48
      Wscript.Quit
    End if
  
    Wscript.Sleep 100
    TimeOutCount = TimeOutCount - 1
  WEnd
  
  'Winxp SP3에서 AppActivate() 버그 임시 해결용 by TTF
  Wscript.Sleep 1
End Sub
  
  
'Shell.SendKeys 위 아래를 Sleep(100)로 감싼다. XP SP3 버그 임시 해결 by TTF
Sub SendKeys( Keys )
  Wscript.Sleep 100
  Shell.SendKeys Keys
  Wscript.Sleep 100
End Sub
2008/02/17 01:01 2008/02/17 01:01

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요