.Net languages で書かれるスクリプトの仕様
このセクションでは、.Net言語で記述されたスクリプトの詳細について説明します。
- 追加のキーワードは、オブジェクトメンバーにアクセスするためには使用されません。たとえば、.Net言語で書かれたルールでは、ルールのコンテキストは "Context"という名前のパラメータとして渡されます。
- .NetアセンブリはMicrosoft .Net Framework 4.0以上を使用してコンパイルする必要があります。希望する.Net Framework バージョンをVisual Studioプロジェクトのプロパティで指定できます。
- スクリプトやグローバルモジュールで試用できる外部アセンブリを追加することは可能です。標準およびコンパイルされたユーザーアセンブリの両方を使用できます。追加されたアセンブリの区分はすべてスクリプトやグローバルモジュールで利用できます。詳しくは、外部アセンブリを参照してください。
- スクリプトがコンパイルされると、コンパイルされたスクリプト本体は、スクリプトが定義されているのと同じ場所に保存されます。したがって、.Netスクリプトは他のスクリプトよりも多くの領域を占有することができます。
- すべてのFlexiCaptureオブジェクトはCOMオブジェクトとして定義されているため、管理されたアンマネージドトランジションのために頻繁にオブジェクトフィールドを扱うときに.Netスクリプトの機能が遅くなる可能性があります。
- FlexiCaptureオブジェクトはマルチスレッドに対応していません。
- デバッグには、.NetスクリプトのSystem.Diagnostics.Debugger.Break方法が使用されます。
- .Netスクリプトをデバッグする際には、デバッグ情報と共に*.pdbも必要です。このファイルは非常に大きい場合があるため、このファイルをスクリプトと共にプロジェクトに保存することはお勧めできません。しかし、.Netスクリプトをデバッグする際には、スクリプトを特定のデバッグ情報でコンパイルするよう指定する必要があります。
Microsoft Visual Studio 2010を使用する場合には、プロセスを.Netコードが実行される場所に添付できます。 - FlexiCaptureスクリプトオブジェクトは、ControllerInterop.dllとShellInterop.dllアセンブリに保存され、それに応じてABBYY.FlexiCaptureとABBYY.FlexiCapture.ClientUI名前欄に属します。アセンブリは、プログラムのルートフォルダにあります。
- すべてのABBYY FlexiCaptureスクリプトオブジェクトは、それぞれの名前でABBYY.FlexiCaptureおよびABBYY.FlexiCapture.ClientUI名前欄からアクセスできます。例:
ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>
ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;
- 「使用する」指示は、コメントと空の文字列とともにスクリプト本体の先頭に書き込むことができます。プログラミング言語と同じ構文が使用されます(C#.Netはusing、JScript.NetはImport、VisualBasic.NetはImports)。例:
using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
FCTools.ShowMessage( img.VerticalResolution.ToString(), false );
注:キーワードusingが実行可能コードの最初の行の前にある場合は、スクリプトエディタでusingディレクティブを使用できます。例:
usingABBYY.FlexiCapture;
usingABBYY.FlexiCapture.ClientUI;
- .Netスクリプトでは、グローバルモジュールからの全機能はグローバルモジュールの名前を使用せず、直接呼び出すことができます。
注:ルールグローバルスクリプトモジュールとエクスポートグローバルスクリプトモジュールで定義されたクラスは、異なる名前を持つ必要があります。それ以外の場合、ルールのコードでクラスのインスタンスを作成すると、エラーが発生します。 - 機能のオプションのパラメータ値を指定したくない場合には(オプションパラメータ付きの機能)、代わりにSystem.nullまたはSystem.Type.Missingを渡す必要があります。
注:非インタラクティブに(つまり、FlexiCapture.exeの代わりにFlexiEx.exeプロセスによって)実行されるスクリプトの場合、FlexiEx.exeプロセスのデバッグボタンはソリューションの確認中ウィンドウに表示されません(スクリプト、 ブレークポイントを含む)。ボタンを表示するには、タスクバーのアクションセンターアイコンをクリックし、アクションセンター設定の変更→問題報告設定→ソリューションのチェックを行わないを選択します。
12.04.2024 18:16:06