From: sin@... Date: 2010-10-04T09:45:15+09:00 Subject: [ruby-list:47520] ruby.exeとruybw.exeを区別することはできませんか? こんには Windowsの環境でスクリプト内から自分自身を実行しているのがruby.exeなのか rubyw.exeなのかを判定する簡単な方法をご存じの方はいませんでしょうか? $$などでpidを取得して、win32api経由でプロセスに関する情報(イメージ名) を取得すれば実行ファイルの名前を知ることはできるのですが、なんだか、大が かりすぎるような感じがして、何か簡単な方法をご存じの方がいればと質問させ ていただきました。 GUIを含んだプログラムで、rubyw.exeで実行させることで、コンソールウィンド ウが開かないようになりますが、エラーやワーニングなどでコンソール出力があ ると標準出力に出力しようとしてrubyw.exeが落ちてしまいます。それで、仕方 なく -W0オプションを付けて実行していると、こんどは、バージョンが変わった ときなどの警告などを見落としてしまいます。エラーが出たり、ちゃんと起動し ないときには、手動でruby.exeで実行すればいいのでしょうが、プログラム自身 にどちっかを区別して、rubyw.exeのときには、ファイルにメッセージを出力 し、ruby.exeのときにはコンソールに出力するといった切り替え機能を入れたい と思っています。 ruby.exeとrubyw.exeの区別ではなく、STDOUTなどが無効かどうかを判定する方 法でもいいんですが……。 -- 福田紳一