2014-02-21 1 views
0

나는 과거에 만든 것을 다시 쓰는 프로젝트를 진행하고 있습니다. 기본적으로 응용 프로그램 설치를위한 버튼이있는 HTA입니다. 현재는 매우 길고 반복적이어서 조금 정리하려고합니다.버튼 클릭을 기반으로 VBscript 변수 설정

FilePath를 Function 값 (FilePath = ApplicationOne())으로 설정하면 작동하는 다음 코드가 있습니다. 버튼 선택에 따라 FilePath를 설정할 수 있어야합니다.

기본적으로 버튼 클릭을 기반으로 FilePath에 지정된 파일 위치가 필요합니다. 아래에서 다르게 설정 될 수 있지만, 응용 프로그램 설치가 아래에 표시된 것보다 훨씬 많기 때문에 분리해야합니다. 이렇게하면 더 깔끔한 디자인을 만들 수 있으며 향후 업데이트를 훨씬 쉽게 할 수 있습니다.

이 작업을 수행하는 방법에 대한 의견이 있으십니까?

Sub ApplicationInstall 
    Dim FilePath  
    Set WshShell = CreateObject("WScript.Shell") 
    FilePath = "SomethingHere" '<---- Change This 
    WshShell.Run FilePath, 1, true 
End Sub 









Function ApplicationOne() 
    strPath = "\\This\is\a\file.cmd" 
    ApplicationOne = strPath 
End Function 

Function ApplicationTwo() 
    strPath = "\\This\is\a\file.cmd" 
    ApplicationTwo = strPath 
End Function 

Function ApplicationThree() 
    strPath = "\\This\is\a\file.cmd" 
    ApplicationThree = strPath 
End Function 

답변

0

활성 응용 프로그램 경로가 포함 된 전역 변수 (HTA의 모든 기능 제외)를 정의 할 수 있습니다. 버튼 클릭 이벤트는이 변수의 값을 업데이트 할 수 있으며 ApplicationInstall() 하위에서는이를 읽을 수 있습니다. 그것은 본질적으로 모듈의 속성으로 작동합니다.

<script language="vbscript"> 

Dim m_strPath ' Page/Module-level variable 

Sub cmdButton1_Click() 
    m_strPath = <application path 1> 
End Sub 

Sub cmdButton2_Click() 
    m_strPath = <application path 2> 
End Sub 

Sub ApplicationInstall() 
    If Len(m_strPath) > 0 Then 
     CreateObject("WScript.Shell").Run Chr(34) & m_strPath & Chr(34), 1, True 
    End If 
End Sub 

</script> 
+0

이것은 완벽하게 작동했습니다. 나는 그것이 단순 할 것이라고 알고 있습니다 ... 매우 감사합니다. – huviduc

+0

대단히 환영합니다! – Bond