Sie sind hier:

de.ActiveXperts.com > Scripting Component
ActiveXperts Scripting Component

quicklinks

ActiveXperts Scripting Component

Integriertes VBSkript und Windows Anweisungen in jeder Anwendung

ActiveXperts Scripting Component ermöglicht es Software Entwicklern VBSkript Programme oder Kommandozeilenprogramme auszuführen, ohne dabei den Windows Scripting Host oder ein Konsolenfenster aufzurufen. Mit dem ActiveXperts Scripting Component können, VBScript Programme und Kommandozeilen Programme von jeder Anwendung oder Skript aufgerufen werden.

How to use Scripting toolkit Visual Stuio.NET Web Application GUI Application Console Application
Startbildschirm nach der Installation Verwenden Sie das Scripting Component mit MS Visual Studio Scripting Component in einer .NET Webanwendung Scripting Component in einem .NET Forms Programm Scripting Component in einer Konsolenanwendung

Generell starten Sie die VBScript Programme indem Sie den 'Windows Script Host' aufrufen (entweder WSCRIPT.EXE oder CSCRIPT.EXE). Das ActiveXperts Scripting Component kommuniziert direkt mit der VBScript Engine des Betriebssystems. Einige der Vorteile des ActiveXperts Scripting Component anstelle des Windows Scripting Hosts sind:

Einige der Vorteile beim verweden des ActiveXperts Scripting Component anstelle des Windows Scripting Host sind:

  • Funktionsausgaben können direkt in jeder Anwendung verwendet werden
  • Standard Ausgaben und Standard Fehler werden in variablen gespeichert, ohne diese dabei weiterleiten zu müssen
  • Direktes aufrufen von Funktionen anstatt 'stub' Code zu schreiben
  • Dynamisches anpassen von Funktionsparametern - übergeben der Funktionsparameter 'on the fly', direkt von ihrer eigenen Anwendung oder Skript
  • Einstellen eines Timeouts um ein eine Funktion durch eine nicht zurückkehrende Rückgabe vorzubeugen, als Beispiel bei einer Endlosschleife
  • Das Abfangen von Programmfehlern, die für gewöhnlich den Windows Scripting Host zum Absturz bringen
  • Individuelles erstellen von Fehler Meldungen
  • Unterstützung für Windows Dienste und Webanwendungen - direktes aufrufen einer VBScript Funktion durch einen Windows Dienst oder Webanwendung

Einige Vorteile des ActiveXperts Scripting Component, anstatt ein Kommandozeilen Programm von einem Kommandozeilen Fensters auszuführen, sind:

  • Standard Ausgaben und Standard Fehlermeldungen sind in Variablen gespeichert, ohne diese weiterleiten zu müssen
  • Einstellen eines Timeouts um ein eine Funktion durch eine nicht zurückkehrende Rückgabe vorzubeugen, als Beispiel bei einer Endlosschleife
  • Unterstützung für Windows Dienste und Webanwendungen - direktes anrufen eines Kommandozeilenprogramms von einem Windows Dienst oder Webanwendung

Das ActiveXperts Component kann an jeden Windows Computer einfach weiterverteilt werden. Wenn Sie die Lizenz einmal erworben haben, kopieren Sie die vb-script-powershell-component.dll (oder vbscript-powershell-componentx64.dll) auf die Workstations oder Server und regestrieren Sie die DLL auf diesen Maschienen.

Die ActiveXperts Scripting Component komponente kann von jeder der folgenden entwicklungs/skript Sprachen verwendet werden:

  • Microsoft Visual Studio .NET: Visual Basic .NET, Visual C# .NET, ASP .NET
  • Microsoft Visual Studio: Visual Basic 5.x or higher, Visual C++ 5.x oder höher
  • Borland Delphi 7.x or higher, Borland C++ Builder 6.x oder höher
  • ASP 2.x, HTML, Javascript
  • PHP
  • VBScript
  • und jede andere entwiklungs Plattform die ActiveX/COM Komponenten unterstützt

System Anforderungen

Das ActiveXperts Scripting Component ist verfügbar als 32-Bit Komponente und als eine 64-Bit Komponente (beide sind im Produktumfang enthalten):

  • AxScript32.dll - 32-Bit Komponente;
  • AxScript64.dll - 64-Bit Komponente.

ActiveXperts Scripting Component läuft unter den folgenden Betriebssystemen:

  • Windows 2012 R2 (64 bit);
  • Windows 2012 (64 bit);
  • Windows 2008 R2 (64 bit);
  • Windows 2008 (32 bit / 64 bit);
  • Windows 2003 (32 bit / 64 bit);
  • Windows 10 (32 bit / 64 bit);
  • Windows 8 (32 bit / 64 bit);
  • Windows 7 (32 bit / 64 bit);
  • Windows Vista (32 bit / 64 bit);
  • Windows XP (32 bit / 64 bit).

Code Schnipsel und Sample Anwendungen

Die folgenden Codeschnipsel zeigen wie man das Scripting objekt verwendet.

Visual C# .NET sample zeigt wie man ein VBScript Programm ausführt

using System;
using System.Collections.Generic;
using System.Text;
using AxScript;

namespace Scripting
{
  class Program
  {
    static void Main(string[] args)
    {
      VBScript objScripting = new VBScript ();

      Microsoft.Win32.RegistryKey regKey;

      // Display Version Info
      Console.WriteLine("Scripting Component Version: " + objScripting.Version);
      Console.WriteLine("Scripting Component Build  : " + objScripting.Build);
      Console.WriteLine("Scripting Component Module : " + objScripting.Module);
      Console.WriteLine("Expiration date            : " + objScripting.ExpirationDate + "\r\n");

      // Set Scriptfile
      objScripting.ScriptFile = "Date.vbs";
      regKey.Close();
                 
      // Specify Function
      objScripting.Function = "GetDateString";

      // Set Parameters
      objScripting.Parameter1 = "\"New Datum: \"";
      objScripting.Parameter2 = "10";
      
      // Run Script
      VBScriptResult objResult = objScripting.Run() as VBScriptResult;

      // Display Result
      Console.WriteLine("{0}", objScripting.ScriptFile);

      Console.WriteLine("Completion Code              : {0}", objResult.RunResultCode);
      Console.WriteLine("Completion Description       : {0}", objResult.RunResultDescription);

      if (objResult.RunResultCode == 0)
      {
          Console.WriteLine("Return String   : {0}", objResult.FunctionReturnString);
          Console.WriteLine("Return Number   : {0}", objResult.FunctionReturnNumber);
      }
      else
      {
          Console.WriteLine("Error Source    : {0}", objResult.ErrorSource);
          Console.WriteLine("Error Description : {0}", objResult.ErrorDescription);
          Console.WriteLine("Error Line      : {0}", objResult.ErrorLineNum);
          Console.WriteLine("Error Char      : {0}", objResult.ErrorCharPos);
          Console.WriteLine("Error Code      : {0,8:X}", objResult.ErrorCode);
      }
    }
  }
}
VB .NET sample showing how to execute a remote command

using System;
using System.Collections.Generic;
using System.Text;
using AxScript;

namespace RemoteCommandDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      RemoteCommand objRemoteCmd = new RemoteCommand();

      Console.WriteLine("Scripting Component Version: " + objRemoteCmd.Version);
      Console.WriteLine("Scripting Component Build  : " + objRemoteCmd.Build);
      Console.WriteLine("Scripting Component Module : " + objRemoteCmd.Module);
      Console.WriteLine("Expiration date            : " + objRemoteCmd.ExpirationDate + "\r\n");

      // Clear all paramaters
      objRemoteCmd.Clear();

      // Set hostname of remote computer
      objRemoteCmd.Host = Ask("Hostname of remote computer", false);

      // Set user account
      objRemoteCmd.UserName = Ask("User account on remote computer", true);

      // Set user password
      objRemoteCmd.Password = Ask("Password on remote computer", true);

      // Set remote command
      objRemoteCmd.Command  = Ask("Enter command to execute on remote computer", false);

      // Set command timeout
      objRemoteCmd.CommandTimeout = 5000;

      // Set Logfile
      objRemoteCmd.Logfile = System.Environment.CurrentDirectory + "LogFile.Txt";

      // Run the command
      objRemoteCmd.Run();

      Console.WriteLine("StdOut received: {0}", objRemoteCmd.StdOut);
      Console.WriteLine("StdErr received: {0}", objRemoteCmd.StdErr);
      Console.WriteLine("Executed command, result: {0})", objRemoteCmd.LastError);
      Console.WriteLine("Ready.");

      Console.ReadKey();
    }

    static private string Ask(string strTitle, bool bAllowEmpty)
    {
      String strInput, strReturn = "";

      Console.WriteLine(strTitle);
      do
      {
        Console.Write("  > ");
        strInput = Console.ReadLine();
        if (strInput.Length > 1)
           strReturn = strInput;
      } 
      while (strReturn == "" && !bAllowEmpty);

      return strReturn;
    }
  }
}

Hier klicken für mehr samples.