[exerb-dev:375] exeのフルパス

Zurück zum Archiv-Index

Masato Toyoshima mt****@izu*****
2003年 9月 2日 (火) 23:31:56 JST


はじめまして、豊島と申します。

スクリプトの配布にExerbを使おうと試行錯誤しております。
開発そのものにはご協力できそうにありませんが、こちらで質問など
させていただいてもよろしいでしょうか?

ご回答いただけましたら助かります。

質問は次のとおりです。
●EXEをD&Dで起動した際、EXEのフルパスを得るにはどうしたらよいでしょうか?

詳細を書かせていただきますと、Exerbで作成したEXEで以下のことを実現しようとしております。
1.EXEファイルと同じフォルダにあるINIファイルの読み込み
2.EXEファイルと同じフォルダにある外部プログラムの実行

環境はWindowsXP Home EditionでRuby-1.8.0(Mingw版)でテストしています。
Exerbは2.6.7を使用しています。
1.2.ともコマンドラインからは問題なく実行できるのですが、
ファイルをDrag&Dropして実行するとうまくいきません。
いろいろ試していたのですが、原因と思われるのは、

●$0、__FILE__がEXEの元のスクリプトの名前のみとなりPATHが一切含まれない
●カレント(ワーク)ディレクトリがEXEファイルのある場所でもない

このためにINIファイルを見つけることができていないようでした。

以下は、動作確認に用いている簡単なスクリプトです。

=begin test.rb

pname1=File.expand_path(__FILE__)
pname2=File.expand_path($0)
file=File.open("log.txt","w")
file.puts pname1
file.puts pname2
file.close

=end test.rb
このスクリプトをもとに作成したtest.exeに適当なファイルをD&Dして実行すると、
C:/Documents and Settings/%USER%/log.txtに、log.txtが保存され、
その中身は、
C:/Documents and Settings/%USER%/test.rb
C:/Documents and Settings/%USER%/test.rb
となっていました。(実際は、%USER%はXPで利用しているユーザ名です。)

何か良い方法がありましたら、ご教示ください。




exerb-developer メーリングリストの案内
Zurück zum Archiv-Index