lep 2013-07-23

Post on 12-Nov-2014

4.855 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

sample database posted on GitHub: https://github.com/miyako/4d-training-lep

TRANSCRIPT

LAUNCH EXTERNAL PROCESS

LAUNCH EXTERNAL PROCESS

LAUNCH EXTERNAL PROCESS

4Dから別アプリケーションを起動するコマンド

LAUNCH EXTERNAL PROCESS

C_TEXT($command)LAUNCH EXTERNAL PROCESS($command)

C_TEXT($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

C_BLOB($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

4Dから別アプリケーションを起動するコマンド同期モード 同期モード 同期モード

テキスト バイナリ

LAUNCH EXTERNAL PROCESS

C_TEXT($command)LAUNCH EXTERNAL PROCESS($command)

C_TEXT($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

C_BLOB($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

4Dから別アプリケーションを起動するコマンド同期モード 同期モード 同期モード

TEXT バイナリ

LAUNCH EXTERNAL PROCESS

C_TEXT($command)LAUNCH EXTERNAL PROCESS($command)

C_TEXT($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

C_BLOB($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

4Dから別アプリケーションを起動するコマンド同期モード 同期モード 同期モード

TEXT BLOB

LAUNCH EXTERNAL PROCESS

C_TEXT($command)LAUNCH EXTERNAL PROCESS($command)

C_TEXT($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

C_BLOB($in;$out;$err)LAUNCH EXTERNAL PROCESS($command;$in;$out;$err)

4Dから別アプリケーションを起動するコマンド同期モード 同期モード 同期モード

TEXT BLOB

LAUNCH EXTERNAL PROCESSプログラム起動

LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")

LAUNCH EXTERNAL PROCESSプログラム起動

LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")NG!!

LAUNCH EXTERNAL PROCESSプログラム起動

LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")NG!!

LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" "+\"C:\\WINDOWS\\notepad.exe")

OK!!

LAUNCH EXTERNAL PROCESSプログラム起動

LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")NG!!

LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" "+\"C:\\WINDOWS\\notepad.exe")

OK!!

http://technet.microsoft.com/en-us/library/bb491005.aspx

LAUNCH EXTERNAL PROCESSプログラム起動

$path:=System folder(Applications or Program Files)+"Calculator.app"$path:=Convert path system to POSIX($path)+/"Contents/MacOS/Calculator"

LAUNCH EXTERNAL PROCESS($path)

LAUNCH EXTERNAL PROCESSプログラム起動

$path:=System folder(Applications or Program Files)+"Calculator.app"$path:=Convert path system to POSIX($path)+/"Contents/MacOS/Calculator"

LAUNCH EXTERNAL PROCESS($path)

NG!!

LAUNCH EXTERNAL PROCESSプログラム起動

https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/open.1.html

LAUNCH EXTERNAL PROCESS("open "+\"/Applications/Calculator.app")

LAUNCH EXTERNAL PROCESSプログラム起動

https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/open.1.html

LAUNCH EXTERNAL PROCESS("open "+\"/Applications/Calculator.app")

POSIX path

LAUNCH EXTERNAL PROCESSプログラム起動

https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/open.1.html

LAUNCH EXTERNAL PROCESS("open "+\"/Applications/Calculator.app")

LAUNCH EXTERNAL PROCESS("open -a "+\"Calculator")

POSIX path

LAUNCH EXTERNAL PROCESSプログラム起動

https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/open.1.html

LAUNCH EXTERNAL PROCESS("open "+\"/Applications/Calculator.app")

LAUNCH EXTERNAL PROCESS("open -a "+\"Calculator")

LAUNCH EXTERNAL PROCESS("open -b "+\"com.apple.calculator")

POSIX path

LAUNCH EXTERNAL PROCESSプログラム起動

$path:=Convert path system to POSIX($path)OK!!

LAUNCH EXTERNAL PROCESSプログラム起動

$path:=Convert path system to POSIX($path)OK!!

$path:=Convert path system to POSIX($path;*)NG!!

LAUNCH EXTERNAL PROCESSプログラム起動

$path:=Convert path system to POSIX($path)OK!!

$path:=Convert path system to POSIX($path;*)NG!!

パーセントエンコーディング(URL)

LAUNCH EXTERNAL PROCESSエスケープ

$argument:=Convert path system to POSIX($path)

LAUNCH EXTERNAL PROCESSエスケープ

$argument:=Convert path system to POSIX($path)

$metacharacters:="\\!\"#$%&'()=~|<>?;*`[] "

For ($i;1;Length($metacharacters)) $metacharacter:=Substring($metacharacters;$i;1) $argument:=Replace string($argument;$metacharacter;"\\"+\ $metacharacter;*)End for

LAUNCH EXTERNAL PROCESSエスケープ

$shoudQuote:=False

$metacharacters:="&|<>()%^\" "

$len:=Length($metacharacters)

For ($i;1;$len) $metacharacter:=Substring($metacharacters;$i;1) $shoudQuote:=$shoudQuote|(Position($metacharacter;\ $argument;*)#0) If ($shoudQuote) $i:=$len End if End for

LAUNCH EXTERNAL PROCESSエスケープ

If ($shoudQuote) If (Substring($argument;Length($argument))="\\") $argument:="\""+$argument+"\\\"" Else $argument:="\""+$argument+"\"" End if End if

LAUNCH EXTERNAL PROCESSエスケープ

If ($shoudQuote) If (Substring($argument;Length($argument))="\\") $argument:="\""+$argument+"\\\"" Else $argument:="\""+$argument+"\"" End if End if

最後の文字が\だった場合(例: パス)エスケープをエスケープしないようにその文字をエスケープする

環境変数

• _4D_OPTION_CURRENT_DIRECTORY

• _4D_OPTION_HIDE_CONSOLE

• _4D_OPTION_BLOCKING_EXTERNAL_PROCESS

SET ENVIRONMENT VARIABLE

PHP Execute, _o_SET CGI EXECUTABLE

環境変数

• _4D_OPTION_CURRENT_DIRECTORY

• _4D_OPTION_HIDE_CONSOLE

• _4D_OPTION_BLOCKING_EXTERNAL_PROCESS

SET ENVIRONMENT VARIABLE

システムパスでカレントディレクトリを指定一部のプログラムは長いパスや空白が含まれるパスに対応していない

環境変数

• _4D_OPTION_CURRENT_DIRECTORY

• _4D_OPTION_HIDE_CONSOLE

• _4D_OPTION_BLOCKING_EXTERNAL_PROCESS

SET ENVIRONMENT VARIABLE

DOSのコンソールウィンドウを表示せずにコマンドを実行する

環境変数

• _4D_OPTION_CURRENT_DIRECTORY

• _4D_OPTION_HIDE_CONSOLE

• _4D_OPTION_BLOCKING_EXTERNAL_PROCESS

SET ENVIRONMENT VARIABLE

非同期モードで外部プログラムを起動したいとき

LAUNCH EXTERNAL PROCESSバッチファイル起動

LAUNCH EXTERNAL PROCESSバッチファイル起動

LAUNCH EXTERNAL PROCESS("cmd.exe /C start /B "+\"toto.bat")

LAUNCH EXTERNAL PROCESSショートカット起動

LAUNCH EXTERNAL PROCESS("cmd.exe /C "+\"toto.lnk")

LAUNCH EXTERNAL PROCESS("cmd.exe /C start /B "+\"toto.bat")

LAUNCH EXTERNAL PROCESSコンソールアプリケーション起動

LAUNCH EXTERNAL PROCESS("cmd.exe /C start "+\"toto.exe")

LAUNCH EXTERNAL PROCESS("cmd.exe /C "+\"toto.lnk")

LAUNCH EXTERNAL PROCESS("cmd.exe /C start /B "+\"toto.bat")

LAUNCH EXTERNAL PROCESSコンソールアプリケーション起動

LAUNCH EXTERNAL PROCESS("cmd.exe /C start "+\"toto.exe")

LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" "+\"C:\\WINDOWS\\notepad.exe")

比較

LAUNCH EXTERNAL PROCESS("cmd.exe /C "+\"toto.lnk")

LAUNCH EXTERNAL PROCESS("cmd.exe /C start /B "+\"toto.bat")

LAUNCH EXTERNAL PROCESSシェルスクリプト起動

LAUNCH EXTERNAL PROCESSシェルスクリプト起動

LAUNCH EXTERNAL PROCESS("/bin/sh "+\"toto.sh")

LAUNCH EXTERNAL PROCESS

http://sources.4d.com/trac/4d_keisuke/wiki/Components

Open JTalk 日本語テキスト音声合成

7-Zip ファイルの圧縮・展開

cURL ネットワーク・クライアント

NKF 漢字コード変換

osascript

https://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html

オープン・スクリプティング・アーキテクチャ

ファイルコンパイルされたスクリプト(.scpt)

ファイル標準テキスト(.as, .applescript)

osascript

https://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html

オープン・スクリプティング・アーキテクチャ

ファイルコンパイルされたスクリプト(.scpt)

ファイル標準テキスト(.as, .applescript)

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/osascript.1.html#//apple_ref/doc/man/1/osascript

-e 1行のステートメント

-l 標準テキストをコンパイルするときのスクリプト言語

- 標準入力(stdIn)からスクリプトを受け取る

-s 出力スタイル(e, h, o, s)

osascript

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/osascript.1.html#//apple_ref/doc/man/1/osascript

-e 1行のステートメント

-l 標準テキストをコンパイルするときのスクリプト言語

- 標準入力(stdIn)からスクリプトを受け取る

-s 出力スタイル(e, h, o, s)

osascript

Convert to text

CONVERT FROM TEXT

UTF-8

エンコーディング

AppleScript

LAUNCH EXTERNAL PROCESS("osascript "+$path;\$in;$out;$err)

AppleScript

script parameters! to argument(variableName)! ! return do shell script ("iconv -f UTF-8 -t UTF-16|echo " & "$" & variableName)! end argumentend script

環境変数

AppleScript

cscript

http://technet.microsoft.com/ja-jp/library/bb490887.aspx

コマンドライン・スクリプティング・ホスト

言語

VBScript(.vbs)

言語 JScript(.js)言語

Windows Scripting File(.wsf)

cscript

http://technet.microsoft.com/ja-jp/library/bb490887.aspx

コマンドライン・スクリプティング・ホスト

言語

VBScript(.vbs)

言語 JScript(.js)言語

Windows Scripting File(.wsf)

cscript

http://technet.microsoft.com/ja-jp/library/bb490816.aspx

//B バッチ・モードで開始する

//D デバッガを起動する

//E: engine スクリプト言語を指定する

//H:cscript cscriptをデフォルトのホストに設定する

//H:wscript wscriptをデフォルトのホストに設定する

//I インタラクティブ・モードで開始する

//Job: xxxx .wsfファイル内の指定したジョブを実行する

//Logo 起動時のバナー・メッセージを表示する

//Nologo 起動時のバナー・メッセージを表示しない

//S コマンドプロンプト・オプションをセーブする

//T: nnnnn タイムアウトを設定する(単位: 秒)

//U Unicodeで入出力する

//X デバッガで開始する

//? ヘルプを表示する

cscript

http://technet.microsoft.com/ja-jp/library/bb490816.aspx

//B バッチ・モードで開始する

//D デバッガを起動する

//E: engine スクリプト言語を指定する

//H:cscript cscriptをデフォルトのホストに設定する

//H:wscript wscriptをデフォルトのホストに設定する

//I インタラクティブ・モードで開始する

//Job: xxxx .wsfファイル内の指定したジョブを実行する

//Logo 起動時のバナー・メッセージを表示する

//Nologo 起動時のバナー・メッセージを表示しない

//S コマンドプロンプト・オプションをセーブする

//T: nnnnn タイムアウトを設定する(単位: 秒)

//U Unicodeで入出力する

//X デバッガで開始する

//? ヘルプを表示する

SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")LAUNCH EXTERNAL PROCESS("cscript //Nologo //U "+$path;\$in;$out;$err)

cscript

Convert to text

CONVERT FROM TEXT

UTF-16LEリトルエンディアン

エンコーディング

VBScript

VBScript

Function GETENV(variableName)!! Set objWshShell = WScript.CreateObject("WScript.Shell")! Set WshSysEnv = objWshShell.Environment("PROCESS")! GETENV = WshSysEnv(variableName)! Set objWshShell = Nothing

end Function

環境変数

VBScript

明示的に型変換CBool ブール型

CByte バイト型

CCur 通貨型

CDate 日付型

CDbl 倍精度浮動小数点実数型

CInt 整数型

CLng 長整数型

CSng 単精度浮動小数点実数型

CStr 文字列型

環境変数

VBScript

明示的に型変換CBool ブール型

CByte バイト型

CCur 通貨型

CDate 日付型

CDbl 倍精度浮動小数点実数型

CInt 整数型

CLng 長整数型

CSng 単精度浮動小数点実数型

CStr 文字列型

環境変数

VBScript

Set ObjSpVoice!! ! ! = CreateObject("SAPI.SpVoice")ObjSpVoice.Rate ! ! ! = CLng(GETENV("SPEAK_RATE"))ObjSpVoice.Volume ! ! = CLng(GETENV("SPEAK_VOLUME"))

ObjSpVoice.Speak GETENV("SPEAK_MESSAGE")

環境変数

LAUNCH EXTERNAL PROCESS

top related