romero: VBScript aus Javascript-Code heraus starten

Hallöchen liebe Gemeinde,

ich hab da, mal wieder :(, ein großen, aber für euch sicherlich kleines, Problem.

Ich habe eine *.HTA-Datei wo ich bisher ausschließlich mit Javascript programmiert habe. Nun möchte ich aber daraus ein VBScript-Code ausführen. Diese soll bzw. ist in einer separaten Datei gespeichert.

Unter Javascript war es ja relativ einfach:

Datei einladen:
<script type="text/javascript" src="./Haupt_Includes/Bereichsauswahl.js"></script>

Javascript-Code starten:

<script language="javascript" type="text/javascript">  
	Bereichsauswahl() //--> und dahinter wird dann der nächste Code in Javascript ausgeführt  
</script>

Wie kann ich also, so denke ich mir das, die Funktion Bereichsauswahl() (Bsp.-Funktion) aufrufen, wenn diese in VBscript geschrieben wurde?

Der Hintergrund ist der, dass ich mittels VBScript (Code wurde hierbei als VBA in Excel geschrieben und getestet), Zugriff auf eine "IBM Personal Communikations - Anwendung" bekommen muss. Und die hab ich nun als VBA (oder VBScript) vorliegen.

Aber das Ganze sollte so sein, dass ich Daten, welche ich mittels VBScript erhalte, weiterhin auch für weitere Javascript-Funktionen nutzen kann.

LG Romero

  1. Hallo,

    Ich habe eine *.HTA-Datei wo ich bisher ausschließlich mit Javascript programmiert habe. Nun möchte ich aber daraus ein VBScript-Code ausführen. Diese soll bzw. ist in einer separaten Datei gespeichert.

    wir sind also in einer IE-only-Umgebung.

    Wie kann ich also, so denke ich mir das, die Funktion Bereichsauswahl() (Bsp.-Funktion) aufrufen, wenn diese in VBscript geschrieben wurde?

    Exakt genauso, als wenn sie in Javascript geschrieben wäre. Der IE interpretiert sowohl JS als auch VBScript, gern auch gemischt in einem Dokument. Nur in getrennten script-Elementen müssen sie sein, wobei das type-Attribut hier zur Unterscheidung der beiden Scriptsprachen wichtig ist.

    Der Hintergrund ist der, dass ich mittels VBScript (Code wurde hierbei als VBA in Excel geschrieben und getestet), Zugriff auf eine "IBM Personal Communikations - Anwendung" bekommen muss. Und die hab ich nun als VBA (oder VBScript) vorliegen.

    Was nun - VBS (VBScript) oder VBA? Das sind zwei verschiedene Paar Stiefel.

    Ciao,
     Martin

    --
    Wer es in einem Unternehmen zu etwas bringen will, muss so tun, als hätte er es schon zu etwas gebracht.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallöchen zurück,

      Ich habe eine *.HTA-Datei wo ich bisher ausschließlich mit Javascript programmiert habe. Nun möchte ich aber daraus ein VBScript-Code ausführen. Diese soll bzw. ist in einer separaten Datei gespeichert.

      wir sind also in einer IE-only-Umgebung.

      Ja das sind wir. Weil ja HTA ausschließlich MS-konform ist.

      Wie kann ich also, so denke ich mir das, die Funktion Bereichsauswahl() (Bsp.-Funktion) aufrufen, wenn diese in VBscript geschrieben wurde?

      Exakt genauso, als wenn sie in Javascript geschrieben wäre. Der IE interpretiert sowohl JS als auch VBScript, gern auch gemischt in einem Dokument. Nur in getrennten script-Elementen müssen sie sein, wobei das type-Attribut hier zur Unterscheidung der beiden Scriptsprachen wichtig ist.

      Kannst du da mal ein Code basteln?

      Ich habe folgendes versucht:

      <script type="text/javascript" src="./test.vbs"></script>  
        
      <script language="javascript" type="text/javascript">  
      	VBS_Funktion( var1, var2 );  
      </script>
      

      Und die test.vbs-Datei sah da wie folgt aus:

      Function VBS_Funktion( var1, var2 )
      MsgBox "Hallo, hier ist VBScript"
      End Function

      Und an der Stelle "meckert" er und will hinter dem "MsgBox" ein ";".

      Deshalb brauch ich mal einen Code-Schnipsel, wie es auszusehen hat.

      Der Hintergrund ist der, dass ich mittels VBScript (Code wurde hierbei als VBA in Excel geschrieben und getestet), Zugriff auf eine "IBM Personal Communikations - Anwendung" bekommen muss. Und die hab ich nun als VBA (oder VBScript) vorliegen.

      Was nun - VBS (VBScript) oder VBA? Das sind zwei verschiedene Paar Stiefel.

      Naja ich habe das Ganze mittels VBA in Excel getestet. Und da ja VBS und VBA sehr ähnlich sind (oder liege ich da falsch), dachte ich mir, ich schreibe es in VBS und lass das aus dem bisherigen Javascript-Code aus starten.

      LG Romero

      1. Hallo romero,

        [code lang=javascript]<script type="text/javascript" src="./test.vbs"></script>

        ^                                                  ^

        ist das so gewollt?

        Gruß, Jürgen

        1. Hallo Jürgen,

          <script type="text/javascript" src="./test.vbs"></script>

          ^                                                  ^

          ist das so gewollt?

          So dachte ich es mir. Weil ich ja den ganzen VBS-Code ja ausgliedern will und nicht in mein Hauptscript ausführen wöllte.

          Deshalb dachte ich es mir so, so wie ich die ganzen anderen *.js-Dateien ausgegliedert habe.

          Ist das so denn falsch? Oder müsste ich da an der Stelle [code lang=javascript]<script type="text/vbscript

            
          LG Romero
          
          1. Hallo Romero,

            Ist das so denn falsch? Oder müsste ich da an der Stelle <script type="text/vbscript schreiben?

            die exakte Syntax kenne ich nicht, die musst du nachschlagen. Aber VBScript als Javascript auszuliefern ist sicher falsch.

            Gruß, Jürgen

            1. Hallo Jürgen,

              Hallo Romero,

              Ist das so denn falsch? Oder müsste ich da an der Stelle <script type="text/vbscript schreiben?

              die exakte Syntax kenne ich nicht, die musst du nachschlagen. Aber VBScript als Javascript auszuliefern ist sicher falsch.

              Danke für den Gedankensprung.
              Der exakte Code lautet: <script type="text/vbscript.

              Damit kann ich die Datei mit dem VBscript einladen und meine Funktionen aufrufen.

              Aber wie kriege ich einen Returnwert eines Array()'s wieder raus aus dem VBS-Code zurück in mein Javascript?
              Variablen übermittle ich wie folgt:

              test = TAKSY_Auslesen( x, y, HTZ1 );

              Und die Funktion TAKSY_auslesen( x, y, HTZ1 ) sieht da wie folgt aus (in VBS):

              Function TAKSY_Auslesen( Bereich, Bereichsnummer, HTZ1 )

              Dim autECLConnList, Sitzungsnummer  
              ...  
              TAKSY\_Auslesen = HTZ\_Array  
              

              End Function

              Dieses "TAKSY_Auslesen = HTZ_Array" soll der Rückgabewert sein, der dann der Variable test (in Javascript) zugeordnet werden soll.
              Wenn ich da z.B. Array(10) angebe, um den 11. Wert zu übergeben, dann gibt er mir das auch entsprechend aus. Aber wie übergebe ich aus einem VBScript-Code ein Array(9 zurück an Javascript?

              LG Romero

              1. Hab es grad selbst rausgefunden:

                So lautet der Code für Javascript um Rückgabe-Array()'s aus VBScript zu erhalten:

                test = TAKSY_Auslesen( x, y, HTZ1 );  
                testit = VBArray(test).toArray();
                

                LG Romero