ダブルクリックするとコード中に定義した値を返すようなexeを作成したいのですが可能なんでしょうか?
よろしくお願いします。
どこに返すのでしょうか?
環境は?
リターンコードをexe外に返すということです。
Win2kです。exitprocessを使うとできそうだということが調べてわかったのですが、具体的にはどのように使用すればよいのでしょうか?
『exe外』ってどこですか?
具体的にどのようなことをしたいのですか?
# 環境を明記しましょう。
VB.NETで、という意味であれば、Sub Main を Function Mainに
変更して、Int32値を返してやればOKです。
VB6以下で、という意味であれば、基本的には不可能です。
一応、ExitProcess APIを使えば返せない事は無いのですが、
VBの内部から呼ぶべきAPI関数では無い、とされています。
VB6で実現するなら、他の手段を講じた方が良いでしょう。
良く使われるパターンとしては、以下のような物があります。
案1) EXEをActiveX EXEにして、VBScriptからCreateObjectで呼び出し、
WScript.Quitメソッドでリターンコードを返すようにする。
案2) EXE側は、終了時になんらかのファイル(0バイトでもOK)を
生成するようにする。呼び出し側では、リターンコードを
取得する替わりに、そのファイルの存在にて戻り値を判定する。
案2') 呼び出し側を変更できない場合は、C++やVB.NETなどで
リターンコードを返すようなラッパーアプリを作っておき、
そこからVB6製EXEを呼び出すようにする。
ツイート | ![]() |