English help on website



hidemaru.runProcess(Ver9.34対応版)
目次JavaScript対応Hidemaruオブジェクト− runProcess
runProcessメソッドは、プロセスを起動します。 [非同期]
js{
  var processInfo = hidemaru.runProcess(strCmd,strCurdir,strMode,strEncoding);
}
パラメータ1(文字列型)
コマンドラインの文字列を指定します。

パラメータ2(文字列型、省略可能)
カレントディレクトリとなる文字列を指定します。

パラメータ3(文字列型、省略可能)
以下の文字列の動作モードを指定します。
"gui"    ウィンドウ表示あり、stdIn/stdOutなし。(既定)
"guiStdio"  ウィンドウ表示あり、stdIn/stdOutあり。
"stdio"   ウィンドウ表示なし、stdIn/stdOutあり、jsインスタンス終了でプロセス終了。
"stdioAlive" ウィンドウ表示なし、stdIn/stdOutあり、jsインスタンス終了でプロセス終了しない。(V9.25以降)

"stdio"はProcessInfoオブジェクトが無くなるとプロセスの終了もします。

パラメータ4(文字列型、省略可能)
以下の文字列のエンコードの種類を指定します。
"sjis"   Shift-JIS
"utf8"   UTF-8(既定)
"utf16"  UTF-16

返り値(オブジェクト)
プロセスの情報を表すProcessInfoオブジェクトを返します。



js{
  debuginfo(2);
  var processInfo = hidemaru.runProcess("C:\\Windows\\System32\\sort.exe", ".", "stdio", "sjis" );
  var stdIn = processInfo.stdIn;
  stdIn.writeLine("111");
  stdIn.writeLine("333");
  stdIn.writeLine("222");
  stdIn.close();

  var stdOut = processInfo.stdOut;
  console.log(stdOut.readAll(1000)); //固まります
}
endmacro;

js{
  debuginfo(2);
  var exe = hidemaru.runProcess("cmd.exe /U /C dir", directory2(), "stdio", "utf16" );
  var stdOut = exe.stdOut;
  stdOut.onReadAll( readAllAsync ); //固まりません

  function readAllAsync(out) {
    //ここはマクロ実行中ではない
    console.log(out);
  }
}
endmacro;

js{
  debuginfo(2);
  var exe = hidemaru.runProcess("cmd.exe /C dir", directory2(), "stdio", "sjis" );
  var stdOut = exe.stdOut;
  stdOut.onReadAll( readAllAsync ); //固まりません

  function readAllAsync(out) {
    //ここはマクロ実行中ではない
    console.log(out);
  }
}
endmacro;

サンプルの//ここはマクロ実行中ではないというのは、言葉の通り、マクロ実行中ではないという意味です。参照


参照:
run
runsync
runsync2
runex
hidemaru.runProcess

参照:
getCurrentProcessInfo
ProcessInfo
isProcessIdValid