AnsweredAssumed Answered

ActiveX オートメーション使用時のファイルメーカープロセスについて

Question asked by user19521 on May 28, 2015

C#で開発したアプリケーションからActiveX オートメーションを使用して

ファイルメーカーのスクリプトを実行するアプリケーションを開発しています。

 

ファイルメーカーのスクリプトを実行することはできているのですが

ActiveX オートメーションでスクリプトを実行した後、手動でファイルメーカーを終了すると

ファイルメーカーのプロセスが残ったままになってしまいます。

 

プロセスが残ったままでファイルメーカーを起動すると、

共有ファイルを開くことができなくなるなどの状況が発生してしまうので

ファイルメーカーのプロセスを確実に終了できるようにしたいのですが

方法がわからず困っています。

 

環境はFileMaker Pro Advanced 13 で、OSはWindows 7 Pro 64bitです。

呼び出し元の.Net Frameworkアプリケーションは使用言語はC#で

.Net Frameworkのバージョンは4.5.1、プラットフォームターゲットはx86を指定しています。

開発環境はVisualStudio2013を使用しています。

 

ActiveX オートメーションを使用する際に参考にした情報は以下のURLです。

FileMaker Pro ActiveX オートメーションの使用(Windows)

http://www.filemaker.com/help/13/fmp/ja/html/create_script.13.11.html

 

実装コードは以下の通りです。

ファイルメーカーは既に起動していてソリューションを開いた状態で

以下のコードを実行しています。

 

FMPRO70Lib.Application filemaker = null;

Documents documents = null;

Document document = null;

 

try

{

    filemaker = new FMPRO70Lib.Application();

    documents = (Documents)filemaker.Documents;

 

    filemaker.Visible = 1;

    document = (Document)documents.Active;

 

    if (document.FullName.Contains(filename))

    {

        document.Activate();

        document.DoFMScript(scriptName);

        while (filemaker.ScriptStatus != 0)

        {

            Thread.Sleep(100);

        }

        result = true;

    }

}

catch (Exception e)

{

    log.Warn(e.Message);

}

finally

{

    document = null;

    documents = null;

    filemaker = null;

}

 

処理が間違っている、もしくは足りないなどありましたら、教えてください。

よろしくお願いいたします。

Outcomes