Zum Hauptinhalt springen
In diesem Abschnitt werden die Besonderheiten von Skripten in .NET-Sprachen beschrieben.
  • Zusätzliche Schlüsselwörter werden nicht verwendet, um auf Objektmember zuzugreifen. So wird beispielsweise in Regeln, die in .NET-Sprachen geschrieben sind, der Regelkontext als Parameter mit dem Namen “Context” übergeben.
  • .NET-Assemblies sollten mit Microsoft .NET Framework 4.0 oder höher kompiliert werden. Die gewünschte .NET-Framework-Version können Sie in den Eigenschaften Ihres Visual-Studio-Projekts festlegen.
  • Es ist möglich, eine externe Assembly hinzuzufügen, die in Skripten und globalen Modulen verwendet werden kann. Dabei können sowohl Standard-Assemblies als auch kompilierte Benutzer-Assemblies verwendet werden. Alle Klassen der hinzugefügten Assemblies stehen in Skripten und globalen Modulen zur Verfügung. Weitere Informationen finden Sie unter Externe Assemblies.
  • Sobald das Skript kompiliert ist, wird der kompilierte Skriptkörper an derselben Stelle gespeichert, an der das Skript definiert ist. Daher kann ein .NET-Skript mehr Speicherplatz beanspruchen als andere Skripte.
  • Alle FlexiCapture-Objekte sind als COM-Objekte definiert. Daher kann die Ausführung von .NET-Skripten langsamer werden, wenn häufig auf Objektfelder zugegriffen wird, da dabei Übergänge zwischen verwaltetem und nicht verwaltetem Code stattfinden.
  • FlexiCapture-Objekte unterstützen kein Multithreading.
  • Zum Debuggen von .NET-Skripten wird die Methode System.Diagnostics.Debugger.Break verwendet.
  • Beim Debuggen von .NET-Skripten benötigen Sie außerdem eine *.pdb-Datei mit Debuginformationen. Diese Datei kann sehr groß sein, und wir empfehlen nicht, sie zusammen mit Ihren Skripten im Projekt zu speichern. Beim Debuggen eines .NET-Skripts müssen Sie jedoch angeben, dass das Skript mit bestimmten Debuginformationen kompiliert werden soll. Wenn Sie Microsoft Visual Studio 2010 verwenden, können Sie eine Verbindung mit dem Prozess herstellen, in dem der .NET-Code ausgeführt wird.
  • FlexiCapture-Skriptobjekte sind in den Assemblies ControllerInterop.dll und ShellInterop.dll gespeichert und gehören entsprechend zu den Namespaces ABBYY.FlexiCapture und ABBYY.FlexiCapture.ClientUI. Die Assemblies befinden sich im Stammordner des Programms.
  • Auf alle ABBYY FlexiCapture-Skriptobjekte kann unter ihrem jeweiligen Namen aus den Namespaces ABBYY.FlexiCapture und ABBYY.FlexiCapture.ClientUI zugegriffen werden. Zum Beispiel:
ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>
ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;
  • Die “Using”-Direktiven können am Anfang des Skriptkörpers zusammen mit Kommentaren und leeren Strings stehen. Dabei wird dieselbe Syntax wie in der Programmiersprache verwendet (using für C#.NET, Import für JScript.NET und Imports für VisualBasic.NET). Zum Beispiel:
using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
FCTools.ShowMessage( img.VerticalResolution.ToString(), false );
Sie können die using-Direktive im Skripteditor verwenden, vorausgesetzt, dass das Schlüsselwort “using” vor der ersten Zeile des ausführbaren Codes steht. Zum Beispiel:
using ABBYY.FlexiCapture;
using ABBYY.FlexiCapture.ClientUI;
  • In .NET-Skripten werden Funktionen aus allen globalen Modulen direkt aufgerufen, ohne den Namen des globalen Moduls zu verwenden. Hinweis: Klassen, die im Rule Global Script Module und im Export Global Script Module definiert sind, müssen unterschiedliche Namen haben. Andernfalls tritt beim Erstellen einer Klasseninstanz im Regelcode ein Fehler auf.
  • Wenn Sie den Wert eines optionalen Parameters einer Funktion nicht angeben möchten (bei Funktionen mit optionalen Parametern), müssen Sie stattdessen System.null oder System.Type.Missing übergeben.
Bei Skripten, die nicht interaktiv ausgeführt werden (also vom Prozess FlexiEx.exe statt von FlexiCapture.exe), wird die Schaltfläche Debug für den Prozess FlexiEx.exe im Fenster “Nach Lösungen suchen” standardmäßig nicht angezeigt (bei Skripten, die einen Haltepunkt enthalten). Damit die Schaltfläche angezeigt wird, klicken Sie in der Taskleiste auf das Symbol Wartungscenter und wählen Sie Einstellungen des Wartungscenters ändern → Einstellungen für die Problemberichterstattung → Nie nach Lösungen suchen.