Ti trovi qui:

ActiveXperts.it > Scripting Component

ActiveXperts Scripting Component
ActiveXperts Scripting Component

quicklinks

Integrare comandi VBScript e Windows in qualsiasi applicazione

ActiveXperts Scripting Component permette, agli amministratori dell’ Information Technology e agli sviluppatori di software, di chiamare le funzioni VBScript senza invocare il “Windows Scripting Host”.

Di solito si chiamano i programmi VBScript invocando il “Windows Script Host” (WSCRIPT.EXE o CSCRIPT.EXE). ActiveXperts Scripting Component comunica direttamente con il VBScript Engine del sistema operativo. Ecco alcuni benefici di questo prodotto:

  • Usare i risultati delle funzioni direttamente nel proprio codice, senza ridirigere standard error e standard output
  • Chiamare funzioni direttamente, invece di scrivere ‘stub’ code - i risultati delle funzioni sono disponibili direttamente a completamento della funzione
  • Passare i parametri delle funzioni dinamicamente – passare i parametri delle funzioni al volo, direttamente dalla propria applicazione o script
  • Impostare un time-out per impedire alle funzioni VBScript di andare in loop all’infinito
  • Intercettare errori di programma
  • Personalizzare i propri messaggi di errore
  • Supporta Windows Services – si può chiamare una funzione VBScript direttamente da un Windows Service

ActiveXperts Scripting Component è un componente ActiveX/COM, che permette un’ interfaccia scripting facile da utilizzare per aziende che vogliono un’ integrazione VBScript nel proprio software. Le caratteristiche dell’ ActiveXperts Scripting Toolkit sono:

  • Chiamare le funzioni direttamente
  • Passare fino a 8 parametri
  • Abilità nell'impostare un time-out, per impedire alle funzioni VBScript di andare in loop all’infinito
  • Script handing robusto
  • Thread safe – il toolkit può essere usato negli ambienti multi-threading (e multi-processing).
  • Supporta Windows Services
  • Gestione avanzata degli errori
  • Logging avanzato
Schermata iniziale dopo l'installazione ActiveXperts Scripting Toolkit Usare Scripting Component con MS Visual Studio Scripting Component in una applicazione web .NET Scripting Component in un programma .NET Scripting Component in una console applicazione
Schermata iniziale dopo l'installazione Usare Scripting Component con MS Visual Studio Scripting Component in una applicazione web .NET Scripting Component in un programma .NET Scripting Compoent in una console applicazione

ActiveXperts Scripting Component contiene esempi per molti strumenti di sviluppo:

  • Visual Basic .NET - applicazione basata su Windows .NE;
  • Visual C# .NET - applicazione basata su Windows .NET;
  • Visual Basic 5.x o superiore - applicazioni basate su Windows;
  • Visual C++ 5.x o superiore - applicazioni basate su Windows;
  • ASP 2.x – sito web basato su pagine ASP (Active Server Page, scripting lato server);
  • ASP .NET – sito web basato su pagine ASP (Active Server Page) e .NET Framework;
  • VBScript - script basati su Windows;
  • Qualsiasi altra piattaforma di sviluppo che supporta componenti ActiveX/COM.

La performance del componente è notevole, dovuta alla sua architettura multi-threading. Durante gli anni la sua forza è stata provata in molte aziende.

ActiveXperts Scripting Component è compatibile con i seguenti sistemi operativi:

  • Windows 2012
  • Windows 2008
  • Windows 2003
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP

Frammenti di codice

I frammenti di codice (VBScript) seguenti illustrano come si puo` usare ActiveXperts Scripting Component.

Per piu` esempi, visitare la pagina Online ActiveXperts Scripting Component Samples.

Visual C #. NET di esempio che mostra come eseguire un programma VBScript

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

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);
      }
    }
  }
}

Campione VB.NET di dimostrazione di come eseguire un comando remoto

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

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;
    }
  }
}

Architettura

ActiveXperts Scripting Component utilizza il Microsoft VBScript Engine. Utilizza solo il motore, senza sostituire alcun componente del VBScript engine.

Il 'cuore' dell’ ActiveXperts Scripting Component è costituito da un file:

  • AxScript32.dll - il componente 'ActiveXperts Scripting Component' per piattaforme 32-bit
  • AxScript64.dll - il componente 'ActiveXperts Scripting Component' per piattaforme 64-bit

ActiveXperts Scripting Component può essere facilmente distribuito su molti PC. Una volta acquistate le licenze, basta copiare l’ AxScript.dll sui PC e registrare il DLL.


Installazione

Componenti ActiveXperts Scripting Component

Il pacchetto ActiveXperts Scripting Component è costituito da 3 componenti, che possono essere installati secondo qualsiasi combinazione:

  • Il componente COM di ActiveXperts Scripting Component - l'interfaccia ai programmi VB;
  • Il file guida ActiveXperts Scripting Component - documentazione;
  • I file di esempio ActiveXperts Scripting Component - esempi.

Installazione su un computer singolo

Basta eseguire il programma di installazione AxScript.exe. Il programma di installazione guidata aiuterà a completare la parte rimanente del processo. Se si seleziona il componente COM di ActiveXperts Scripting Component, il programma di installazione può eseguire la registrazione di questo componente al posto dell'utente. Rimane comunque anche la possibilità di registrare questo oggetto per conto proprio.

Tutte le installazioni successive di ActiveXperts Scripting Component possono essere eseguite sia manualmente che usando il programma di installazione.

Installazione su più computer

Tutte le installazioni successive possono essere eseguite usando il programma di installazione. Considerato che l'installazione dei componenti principali è molto semplice, è possibile eseguire questa operazione manualmente, o integrarla nel programma di distribuzione software aziendale.

Se si sceglie di installare manualmente il componente COM su altre macchine, basta eseguire le seguenti operazioni:

  • Copiare AxScript32.dll (il componente ActiveXperts Scripting Component) in una cartella di destinazione sulla nuova macchina;
  • Registrare il componente COM usando il seguente comando: REGSVR32 \AxScript.dll