2

rubyw.exe(1.8.7)を使用して実行されたrubyスクリプト内から複数のシステムコールを使用するプロセスを整理しようとしています。

私が理解できる限り、rubyw.exeの主な理由は、ユーザーの注意をそらすためのコマンドプロンプトがポップアップしないことです。ただし、そのプロセス内からのシステムコールは、このプロセススクリプトのユーザーにとって非常に気が散るこれらのポップアップを生成するようです。

誰かがこれを行う方法を知っていますか?

SOにはこれに似た質問がたくさんありますが、これに完全に答えるものはありません。Pythonを使用している場合、この質問/回答は役に立ちます(http://code.activestate.com/lists/python-list/46042/)が、そうです。私の検索では、ルビーでこれを達成する方法が見つかりませんでした。

更新:ここにこのスレッドがあります。Windowsでcurl Windowを非表示にしていますが、これが唯一の解決策であり、標準出力を取得することもできません。

4

1 に答える 1

2

私はwin32-open3gemを使用することになりました。フォークはWindowsシステムに実装されていないため、組み込みのopen3を使用することはできず、次のことを行う必要があります。

gem install win32-open3

ただし、これには、特にcallメソッドに渡すことができるフラグが付属しています

open3のWindowsバージョン(Open4.popen4にも適用されます)には、モードフラグと表示フラグという2つの違いがあります。モードの場合、2番目の引数として「t」(テキスト、デフォルト)または「b」(バイナリ)のいずれかを指定できます。表示フラグには、渡した値に応じて、コンソールウィンドウを表示するかどうかを指定するtrueまたはfalseを指定できます。 デフォルトはfalseです。

この特定のスクリプトのユーザーは、常にフォーカスを奪う15個のcmdウィンドウに攻撃されることはなくなりました。

于 2012-10-02T21:43:22.700 に答える