Skip to main content

動作と制限事項

  • 追加のキーワードを使用して オブジェクト メンバーにアクセスすることはできません。たとえば、.NET 言語で記述されたルールでは、ルールのコンテキストは Context という名前のパラメーターとして渡されます。
  • .NET アセンブリは、Microsoft .NET Framework 4.0 以降でコンパイルしてください。.NET Framework のバージョンは、Visual Studio の Project Properties で設定できます。
  • すべての FlexiCapture オブジェクト は COM オブジェクト であるため、.NET スクリプト で オブジェクト field に頻繁にアクセスすると、マネージド コードとアンマネージド コード間の移行により実行速度が低下する場合があります。
  • FlexiCapture オブジェクト はマルチスレッドをサポートしていません。
  • スクリプト をコンパイルすると、コンパイル済みの body は スクリプト と同じ場所に格納されます。そのため、.NET スクリプト は他の スクリプト よりも多くの容量を占有する場合があります。
  • スクリプト および グローバルモジュール で使用する external アセンブリ を追加できます。標準 アセンブリ とコンパイル済みのユーザー アセンブリ の両方を使用でき、含まれるすべての クラス を利用できます。詳細については、External assemblies を参照してください。

名前空間とスクリプトオブジェクト

FlexiCapture のスクリプトオブジェクトは、ControllerInterop.dll および ShellInterop.dll アセンブリに格納されており、それぞれ ABBYY.FlexiCapture および ABBYY.FlexiCapture.ClientUI 名前空間に属しています。これらのアセンブリは、ABBYY FlexiCapture のルートフォルダーにあります。 すべてのスクリプトオブジェクトには、これらの名前空間からそれぞれの名前でアクセスできます。例:
using ディレクティブは、コメントや空行とともにスクリプト本文の先頭に記述します。プログラミング言語ごとに対応する構文を使用します。C#.NET では using、JScript.NET では Import、VisualBasic.NET では Imports を使用します。例:
スクリプト エディターでは、実行可能なコードの最初の行より前にキーワード using を記述すれば、using ディレクティブを使用できます。例:

グローバルモジュール関数

.NETスクリプトでは、すべてのグローバルモジュールの関数を、グローバルモジュール名を指定せずに直接呼び出します。 Rule Global Script Module および Export Global Script Module で定義されるクラスは、それぞれ異なる名前でなければなりません。そうでない場合、ルールのコードでクラスのインスタンスを作成するとエラーが発生します。 オプションパラメーターをスキップするには、その値の代わりに System.null または System.Type.Missing を渡します。

.NET スクリプトをデバッグする

ブレークポイントを設定するには、System.Diagnostics.Debugger.Break メソッドを使用します。 デバッグには、デバッグ情報を含む *.pdb ファイルも必要です。このファイルは非常に大きくなる可能性があるため、スクリプトとともにプロジェクトに保存しないでください。.NET スクリプトをデバッグする際は、デバッグ情報を含めてコンパイルするよう指定します。 Microsoft Visual Studio 2010 では、.NET コードを実行しているプロセスにアタッチできます。 非対話的に実行されるスクリプト (FlexiCapture.exe ではなく FlexiEx.exe プロセスで実行されるスクリプト) の場合、ブレークポイントが含まれていても、デフォルトでは Checking for solution ウィンドウに FlexiEx.exe プロセス用の Debug ボタンは表示されません。ボタンを表示するには、タスクバーの Action Center アイコンをクリックし、Change Action Center settings → Problem reporting settings → Never check for solutions を選択します。