4D v13.4LAUNCH EXTERNAL PROCESS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
LAUNCH EXTERNAL PROCESS
|
LAUNCH EXTERNAL PROCESS ( fileName {; inputStream {; outputStream {; errorStream}}} ) | ||||||||
引数 | 型 | 説明 | ||||||
fileName | 文字 |
![]() |
ファイルパスと起動するファイルの引数 | |||||
inputStream | 文字, BLOB |
![]() |
入力ストリーム(stdin) | |||||
outputStream | 文字, BLOB |
![]() |
出力ストリーム(stdout) | |||||
errorStream | 文字, BLOB |
![]() |
エラーストリーム(stderr) | |||||
LAUNCH EXTERNAL PROCESSコマンドを使用して、Mac OS XとWindowsで4Dから外部プロセスを起動させることができます。
Mac OS Xでは、コマンドを用いてターミナルから起動できる実行可能なアプリケーションへアクセスできます。
注: このコマンドは、4D PackのAP_Sublaunchコマンドと同じ機能 (と拡張された特徴) を持ちます。
実行するアプリケーションの固定されたファイルパスと (必要に応じて) 引数を引数fileNameに渡します。
Mac OS Xではアプリケーション名を渡すこともできます。4Dは環境変数PATHを使用して、実行可能ファイルを探します。
警告: このコマンドは実行可能なアプリケーションのみを起動することができます。シェル (コマンドインタプリタ) の一部である命令は実行できません。例えば、Mac OSではこのコマンドを用いてecho命令やインダイレクトを実行することはできません。
オプションのinputStream引数は外部プロセスのstdinを格納します。コマンドが実行されると、引数outputStreamとerrorStream (渡した場合) は外部プロセスのstdoutとstderrをそれぞれ返します。32KBまたはバイナリデータ(ピクチャのような) より大きなサイズのテキストデータを処理する場合、文字列の代わりにBLOB引数を使用します
注: SET ENVIRONMENT VARIABLEコマンド経由(非同期実行) で環境変数_4D_OPTION_BLOCKING_EXTERNAL_PROCESS を使用した場合、引数outputStreamとerrorStreamは返されません。
Application/UtilitiesフォルダにあるMac OS Xターミナルを使用します。
1. ファイルに対してパーミッションを変更する(chmod はファイルアクセスを変更するために使用するMac OS Xコマンドです)
LAUNCH EXTERNAL PROCESS("chmod +x /folder/myfile.txt")
2. テキストファイルを編集する(catはファイルを編集するために使用するMac OS X マンドです)。この例ではコマンドの完全なアクセスパスが渡されています。
C_TEXT(input;output)
input:=""
LAUNCH EXTERNAL PROCESS("/bin/cat /folder/myfile.txt";input;output)
3. "Users" フォルダの内容を取得する(ls -lはDOSのdir コマンド に相当するMac OS Xコマンドです)
C_TEXT($In;$Out)
LAUNCH EXTERNAL PROCESS("/bin/ls -l /Users";$In;$Out)
4. 独立している"グラフィック" アプリケーションを起動させるには、openシステムコマンドを使用するのが望ましいです(この場合、LAUNCH EXTERNAL PROCESS ステートメントはアプリケーションをダブルクリックすることと同じ効果があります) 。
LAUNCH EXTERNAL PROCESS("open /Applications/Calculator.app")
5. NotePadを開く
LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")
6. Notepadを開き、特定のドキュメントを開く
LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe C:\\Docs\\new folder\\res.txt")
7. MicrosoftR WordRアプリケーションを起動させて、特定のドキュメントを開く(2つの""を使用)
$mydoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\Documents and Settings\\Mark\\Desktop\\MyDocs\\New folder\\test.xml\""
LAUNCH EXTERNAL PROCESS($mydoc;$tIn;$tOut)
8. Perlスクリプトを実行する(ActivePerlを必要とします):
C_TEXT($input;$output)
SET ENVIRONMENT VARIABLE("myvariable";"value")
LAUNCH EXTERNAL PROCESS("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$input;$output)
9. コンソールを表示せずにカレントディレクトリでコマンドを実行させる
SET ENVIRONMENT VARIABLE("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
LAUNCH EXTERNAL PROCESS("mycommand")
10. ユーザが選択した外部ドキュメントをWindowsで開く
$docname:=Select document("";"*.*";"Choose the file to open";0)
If(OK=1)
SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" \""+$docname+"\"")
End if
コマンドが正しく実行されるとシステム変数OKは1に設定されます。そうでなければ (ファイルが見つからない、メモリが足りないなど) 0が設定されます。
プロダクト: 4D
テーマ: ツール
番号:
811
初出: 4D 2004