2009-11-01 2 views
5

WSH 로그온 스크립트를 작성하려고합니다. 회사 전체의 관리자는 스크립트의 실행을 사용자 정의하고 특정 위치 및 사용자에 대해 추가 스크립트를 실행할 수 있어야합니다. 작업을 쉽게하기 위해 관리자가 스크립트에서 액세스 할 수있는 API를 제공하고자합니다. JScript를 사용하여 API를 작성하면 VBScript를 통해 정의한 객체를 초기화 할 수 있습니까?JScript로 작성된 개체를 VBScript에서 초기화 할 수 있습니까?

<!-- The WSF logon script file --> 
<package> 
    <job> 
     <script language="JScript"> 
      // A demonstration function 
      function OverNineThousand() { 
       return 9001; 
      } 

      // A demonstration "class" 
      function WorkstationClass() { 
       var os = "Windows XP"; 

       this.getOperatingSystem = function() { 
        return os; 
       } 
      } 
     </script> 

     <script language="VBScript"> 
      Dim bigNumber, workstation 

      '// This assignment works properly. 
      bigNumber = OverNineThousand() 

      '// This assignment causes an error. Am I doing it wrong? 
      Set workstation = New WorkstationClass() 

      '// Execution never gets this far 
      WScript.Echo workstation.getOperatingSystem() 
     </script> 
    </job> 
</package> 

내가 할 노력하고있어 달성하기 위해 어떤 방법이 있나요 : 예를 들어, 다음 코드를 고려?

답변

7

VBScript와 JScript는 개체를 초기화하는 방법에 동의하지 않는 것처럼 보입니다. 그러나 일단 객체가 초기화되면 두 언어 모두에서 인식됩니다. 이 문제를 해결하기 위해 JScript에서 개체를 만든 다음 아래에 설명 된대로 VBScript 호출자에게 개체를 반환해야했습니다.

<package> 
    <job> 
     <script language="JScript"> 
      // A demonstration "class" 
      function WorkstationClass() { 
       var os = "Windows XP"; 

       this.getOperatingSystem = function() { 
        return os; 
       } 
      } 

      function CreateWorkstation() { 
       return new WorkstationClass(); 
      } 
     </script> 

     <script language="VBScript"> 
      Dim workstation 

      '// This assignment causes an error. 
      '// Set workstation = New WorkstationClass() 

      '// This works! 
      Set workstation = CreateWorkstation() 

      '// Prints "Windows XP" 
      WScript.Echo workstation.getOperatingSystem() 
     </script> 
    </job> 
</package> 
+0

내가 필요한 것 – JoshHetland

관련 문제