オペレーティングシステムで実行可能ファイルを実行します。
&ret = Shell(‘program.exe’, [
Modal ]
, [ RedirectOutput ]
)
入力値の説明: Modal オプションの Numeric パラメーターです。呼び出し側のプログラムの実行を、起動されたプログラムが終了するまで待つか、そのまま続行するかを指定します。
次のいずれかに指定します:
- 0: 呼び出しは非モーダルになります。これは、呼び出し元プログラムが呼び出しを実行した直後に、呼び出されたプログラムの終了を待たずに実行を継続することを意味します。
- 1: 呼び出しはモーダルになります。これは、呼び出されたプログラムの実行が終了するまで、呼び出し元プログラムが待機することを意味します。
値を指定しない場合、既定で 0 が想定されます。
RedirectOutput オプションの Numeric パラメーターです。起動したプログラムの出力をコンソールウィンドウにリダイレクトするかどうかを示します。Modal=1 の場合にのみ適用されます。
次のいずれかに指定します:
- 0: プロセス出力はコンソールウィンドウに出力されません。
- 1: プロセス出力はコンソールウィンドウに出力されます。
値を指定しない場合、既定で 0 が想定されます。
戻されるタイプ: Numeric
オブジェクト:
Procedure、
Transaction、
Web Panel、
Data Provider ジェネレーター: .NET、
.NET Framework、
Java
説明
Shel 関数はプログラムの実行に成功すると 0 (ゼロ) を返します。それ以外の場合は、エラーに応じて 0 以外の数値を返します。
Java ジェネレーターを使用する場合は、ファイルが実行可能ファイルである限り、どの環境でもアプリケーションを実行できるようになります。
0 以外の数値が返された場合、この関数は実行に送信されたプロセスの ExitCode を返します。たとえば、&ret=shell ("process.exe", 1) は process.exe を返す終了コードを返します。関連するプロセスが正常に起動されると、Shell 関数はプロセスの終了を待たずに制御を返すため、ExitCode を取得しない (0 になる) 場合の Modal=0 を除きます。
注:
- Web 環境では、プロセスはユーザーインターフェイスなしで、Web アプリケーションと同じセキュリティ権限で実行されます。Java Web アプリケーションでは、このプロセスは Tomcat のルートディレクトリーで実行されます。
- Java Web アプリケーションでは、プロセスは Tomcat のルートディレクトリーで実行されます。
- GeneXus 16 Upgrade 2 以降、この関数を使用する場合は、デプロイに GXClasses.Win.dll ファイルを手動で含める必要があります。詳しくは、SAC#44468 を参照してください。
この関数を使用するには、
[ Standard Functions ] プロパティに [ Allows non-standard functions ] の値を設定する必要があります。
Shell 関数を使用してプログラムを実行するときにパラメーターを渡すことができます。次に例を示します:
&ret = shell('program.exe "C:\My Documents\filename.txt"')
実行可能ファイルまたはパラメーターのディレクトリーに空白がある場合は、二重引用符 (" ") で区切る必要があります。次に例を示します:
&ret = shell('"C:\Program Files\MyProgram.exe" Par1 Par2')
この関数を使用する場合、外部ユーザーの入力をサニタイズすることが必須です。