Tips

Using AP ShellExecute to open files outside of 4D instead of AP Sublaunch

日付2003/03/14
ID26327 (英語原文参照)
バージョン6.8.2 and higher
プラットフォームMac & Win

タイトル
U.S)Using AP ShellExecute to open files outside of 4D instead of AP Sublaunch
JP)AP ShellExecuteとAP Sublaunchコマンド

4Dからアプリケーションやドキュメントを起動する必要がある場合、AP Sublaunchコマンドの代わりにAP ShellExecuteコマンドを使用することができます。
この2つのコマンドは基本的にはアプリケーショやドキュメントを起動することができるという似た機能を持っています。
しかしながら、AP ShellExecuteコマンドは、ファイル名をのみを渡してアプリケーションを起動することができます。
AP ShellExecuteコマンドはAP Sublaunchコマンドが最適化されたものであると考ることができます。
下記の例では、テキストフィールドにレコード毎に関連づけたPDFのパスがあります。
フォーム上にはボタンがあり、このボタンをクリックすると、ファイルに適したアプリケーションが起動します。

AP Sublaunchコマンドを使用した例です。
`メソッド:AP Sublaunch
C_TEXT($file;$app)
C_LONGINT($err)
$file:="C:\Documents and Settings\Database-test\testPDF\pub71.pdf"
$app:="C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe"
$err:=AP Sublaunch ($app+" "+$file;0)

ここでの問題点は、ファイルを開くアプリケーションが上記ディレクトリに存在しない場合、ファイルを開くことに失敗することです。
反対に、AP ShellExecuteコマンドではこの問題が発生しません。
このコマンドでやるべきことは、ファイル名あるいは開くファイルの絶対パスを渡すことだけです。
AP ShellExecuteコマンドは、オペレーティングシステムによって、そのファイルに関連づけられたアプリケーションで起動することができます。

AP ShellExecuteコマンドの例です。
`メソッド:AP SehllExecute
C_TEXT($file)
$file:="pub71.pdf"
$err:=AP ShellExecute ($file)

注意:
MacOS9およびMacOSX上では、ファイルを4Dアプリケーションと同じ階層に置く必要があります。
つまり、パッケージ内に置く必要があります。
このケースでは、単にファイルのエイリアスを作成してこのエイリアスをアプリケーションと同じ階層に置きます。