自プロジェクトの所在フォルダの取得方法

解決


HTML-M  2008-04-02 10:34:07  No: 144556  IP: 192.*.*.*

自プロジェクトの所在フォルダの取得方法を
教えてください

編集 削除
HTML-M  2008-04-02 10:35:00  No: 144557  IP: 192.*.*.*

バージョン:VisualBasic2008ExpressEdision

編集 削除
シャノン  2008-04-02 10:50:37  No: 144558  IP: 192.*.*.*

プロジェクト内のコードで取得したいということですか?

方法はあると思いますが、どうしてそういうことをしたいのかが気になります。
デバッグモードならともかく、リリースしたら、コンパイルした exe なり dll とプロジェクトは関係なくなると思うので、その場合はどうなるんでしょうか。

編集 削除
やじゅ  2008-04-02 12:52:20  No: 144559  IP: 192.*.*.*

中級者の方だから、実行ファイルのフォルダってわけでも
なさそうですね。
http://dobon.net/vb/dotnet/vb6/apppath.html

自プロジェクトの所在フォルダってことは、vbprojがある
フォルダってことになるので、全てのドライブでファイル
検索するしかないのでは?

編集 削除
シャノン  2008-04-03 10:04:36  No: 144560  IP: 192.*.*.*

複数あったらどうするんだろ。
そもそも、カレントディレクトリとかでなくプロジェクトのディレクトリを何に使いたいのか疑問です。

編集 削除
HTML-M  2008-04-03 16:14:58  No: 144561  IP: 192.*.*.*

やっぱり、初〜中の間ぐらいです。

配布先のファイル環境がどうなっているのかわからないのです。

たとえば、CドライブとDドライブを分けている環境では、
D:\ProgramFilesにアクセスしなければならない場合があります。

そもそも、ディストリビューションウィザードが使えないので、
インストールディレクトリがわからないのです。

編集 削除
HTML-M  2008-04-03 16:22:48  No: 144562  IP: 192.*.*.*

発行済みexeで、効果音などを呼び出すとなると、
一緒にWAV等のファイルを送らなければいけないので。

あと、もう一つの方法があるんですけど、
ソリューションエクスプローラーに効果音を追加して、

ネームスペースで呼び出せますか?

プロジェクト名.〜〜〜〜〜〜〜〜〜〜
というようなコードで呼び出す

編集 削除
シャノン  2008-04-03 16:49:23  No: 144563  IP: 192.*.*.*

おそらく、知りたいのはプロジェクトの場所ではなくて exe ファイルの場所ではないですか?
例えば、D:\Program Files\Hoge\Hoge.exe にインストールされているとき、D:\Program Files\Hoge\ が欲しいのですよね。
それが知りたいのであれば、やじゅさんが提示してくれたリンク先を見てください。
効果音を鳴らしたい場合、例えば D:\Program Files\Hoge\wav\sound.wav にファイルがあるとして、D:\Program Files\Hoge\ が特定できれば、あとはそのパスに wav\sound.wav をくっつければいいわけですからね。

配布形態がわからないのですが、通常、ビルドしたら exe ファイルと、必要であれば wav 等のファイルを配布して、ソースコードは配布しませんよね。
exe と wav だけ受け取った人は、「プロジェクト」を持っていませんから、リリース環境に「プロジェクトの所在フォルダ」というのはありません。

プロジェクトにリソースを追加することで、
> プロジェクト名.〜〜〜〜〜〜〜〜〜〜
とすることは可能です。
http://dobon.net/vb/dotnet/programing/vsresource.html
ただし、音声ファイルをいくつも埋め込むと、exe ファイルのサイズが肥大しますので注意してください。

リソースとして埋め込まなくても、
> プロジェクト名.〜〜〜〜〜〜〜〜〜〜
という呼び出し方にすることはできますが、それは要するにそういう呼び出し方で使えるクラスを自分で作るということなので、これという決まりきった方法はありません。
興味があればご自分で試行錯誤してみてください。

編集 削除
HTML-M  2008-04-03 17:01:11  No: 144564  IP: 192.*.*.*

とても参考になりました!
ありがとうございます。
(正常に動作が確認できたら、解決チェックします。)

あと、exeに埋め込むのと、他から呼び出すのはどっちがファイルサイズが小さいですか?

・同じ  ・exe  ・他から

編集 削除
HTML-M  2008-04-03 17:01:32  No: 144565  IP: 192.*.*.*

↑合計のサイズです。

編集 削除
HTML-M  2008-04-03 17:13:05  No: 144566  IP: 192.*.*.*

Dim Audio As Object



プロジェクト名.My.Resources.オーディオ
My.Computer.AudioPlay(Audio)

で再生できませんでした

My.Computer〜省略〜では再生できませんか?

編集 削除
HTML-M  2008-04-03 17:24:02  No: 144567  IP: 192.*.*.*

追加

Dim Audio As Object



Audio=プロジェクト名.My.Resources.オーディオ
My.Computer.AudioPlay(Audio)

で再生できませんでした

My.Computer〜省略〜では再生できませんか?

編集 削除
あのー  2008-04-03 18:53:46  No: 144568  IP: 192.*.*.*

タイトルと内容が違うものになってるんだから、別スレ立てた方がいいんでは?
本当は
> 2008/04/03(木) 16:22:48
の時点で別スレッド化の方がよかったんじゃ・・・

編集 削除
シャノン  2008-04-04 10:09:37  No: 144569  IP: 192.*.*.*

> あと、exeに埋め込むのと、他から呼び出すのはどっちがファイルサイズが小さいですか?

普通に考えて同じだと思いますが。

編集 削除
シャノン  2008-04-04 10:10:08  No: 144570  IP: 192.*.*.*

> 別スレ立てた方がいいんでは?

だとしても、スレ主以外が勝手に解決しない方がいいと思います。

編集 削除
ありゃ  2008-04-04 21:16:14  No: 144571  IP: 192.*.*.*

間違って解決済みにしちゃったーい

すいませーん(てへw)

編集 削除