RunProgram

概要: baRunProgramは外部アプリケーションを起動します。またオプションで外部プログラムの終了を待ってから動作を継続させることができます。

シンタックス: Result = baRunProgram( Program , State, Wait )

パラメータ: #string, #string, #integer
Program 起動するプログラムの名前。
State プログラムを起動したときのウィンドウの状態。次のいずれかとなります。
 "Normal"

 通常の状態

 "Hidden"  不可視の状態
 "Maximised"  最大化した状態
 "Minimised"  最小化した状態

Wait Directorプログラムがそのまま動作を継続するか、外部プログラムの終了を待ってから動作を継続するかを決定します。trueかfalseを指定してください。

戻り値: #integer
16bit環境ではプログラムのインスタンスハンドルを返します。この値が31より大きければプログラムの起動に成功したことになります。32bit環境では31より大きな値を返しますが、数値は特に意味を持ちません。
戻り値が32よりも小さい場合はエラーが発生したことを示します。下記のエラー番号が考えられます。
0 システムのメモリが不足している、または実行ファイルが破損している、リロケーションが無効である。
1 詳細不明のエラー。
2 ファイルが見つからない。
3 パスが見つからない。
5 タスクへダイナミックにリンクしようとした、あるいは共有またはネットワーク保護エラーが発生した。
6 ライブラリが個々のタスクに分かれたデータセグメントを必要とする。
8 アプリケーションの起動に必要なメモリが不足している。
10 Windowsのバージョンが正しくない。
11 実行ファイルが無効である。Windowsアプリケーションでないか.EXEイメージにエラーがある。
12 アプリケーションが異なるOS向けに作られている。
13 アプリケーションがMS-DOS 4.0向けに作られている。
14 実行ファイルの形式が不明である。
15 リアルモード用のアプリケーション(初期のWindows向けに開発されたもの)をロードしようとした。
16 読み取り専用になっていない複数のデータセグメントを持つ実行ファイルの2番目のインスタンスをロードしようとした。
19 圧縮された実行ファイルをロードしようとした。ロード前に解凍されている必要がある。
20 DLLが無効である。アプリケーションの実行に必要なDLLに破損しているものがある。
21 アプリケーションの実行に32bit拡張命令が必要である。

例: OK = baRunProgram( "Notepad.exe", "maximised", false )

ノート: 可能であればプログラムまでの完全なパスを指定してください。パスが与えられない場合、Windowsは次の順でファイルを探します。
 1 カレントディレクトリ
 2 Windowsディレクトリ
 3 Windowsのシステムディレクトリ
 4 現在のタスクの実行ファイルを含むディレクトリ
 5 環境変数PATHにリストされているディレクトリ
 6 ネットワークにマップされているディレクトリ

指定できるのは実行ファイル名だけに限らず、その実行ファイルがサポートしているどのようなコマンドラインパラメータでも付加することができます。例えばAdobe Acrobat Readerでmydoc.pdfを開く場合は次のようにコールしてください。
baRunProgram( "acroread.exe mydoc.pdf", "maximised", false )

Acrobatファイルを印刷する場合は次のような指定が可能です。
baRunProgram( "acroread.exe /p mydoc.pdf", "Hidden", true )

Waitオプションを使うと、起動させた外部プログラムが終了するまでDirectorに処理を戻しません。この状態でユーザがDirector側に切り替えた場合、固まってしまったように見えます。この状態を知らせるメッセージを画面上に表示しておいたほうがよいでしょう。あるいはファンクションWaitTillActiveを使ってDirector側が再度アクティブになるまで処理をポーズすることもできます。

関連項目: baWaitTillActive
baWaitForWindow
baNextActiveWindow
baOpenFile
baShell