緊急!EXEファイルの正常終了


ソシム  2003-03-13 22:24:04  No: 106309

コンパイルしたEXEファイルを実行し、終了してもWindowsのシステム情報→実行中のタスクを覗くと実行中のままになっています。
正常にプログラムを終了させる方法というのがあるのでしょうか?


名前なし  2003-03-13 23:24:12  No: 106310

コードが間違っているのでは?


ソシム  2003-03-13 23:41:38  No: 106311

確かに、終了ボタンでは
unload  me
としてるだけですが、windowのxボタンで終了しても同じです。
それとも、他の部分が影響したりするのでしょうか?


名前なし  2003-03-13 23:59:57  No: 106312

普通は、 Unload Me だけで大丈夫ですよ。

# 情報が少なすぎて、回答できません。

例えば、非表示のフォームが Load されたままとか。


ソシム  2003-03-14 00:13:42  No: 106313

早速返答ありがとうございます。
ちなみに  
unload  me
ではなく
End
でした。

もう少し、詳しく説明しますとVB6で作成したアプリケーションを他のマシンで動かしたところウィンドウズmeだと、commandボタン(内容は  End  のみ)でアプリケーションを終わらせてもシステム情報に残ったまま。xボタン(window右上の)で終了させるとシステム情報から削除。
XPだとそのどちらでもシステム情報に残ったままなんです。
ちなみに作成したマシンはmeです。
ちゃんと削除されるようにしたいんですが、というか普通はなるんですよね。
普通なるハズのものがならないので、おかしいと思いご意見を伺おうかと思ったのですが。


DotL  2003-03-14 08:49:40  No: 106314

API:
 GetExitCodeProcess
 GetCurrentProcess
 ExitProcess

を宣言して、

Dim pEnd&
Call GetExitCodeProcess(GetCurrentProcess(),pEnd)
ExitProcess(pEnd)

とすれば通常の残骸はなくなると思います。
(メモリエラーがでますが、EXEファイルにすれば大丈夫です。)


Loreley  2003-03-23 06:17:52  No: 106315

まだ解決チェックされてないので便乗します。
ちょっと中身は忘れましたが、
For Each文をつかって、
すべてUnload してまわるのがあったと思います。
私も普段Endを使ってますが、
Endは推奨されないとかどっかに書いてあったような気が。


たき  2003-03-24 23:40:52  No: 106316

ロードされている全フォームをアンロードする方法

Dim i As Integer
''Forms コレクションに含まれるフォームを順にアンロードします。
For i = Forms.Count - 1 To 0 Step -1
    Unload Forms(i)
Next


ソシム  2003-03-27 18:26:15  No: 106317

”緊急”といっておきながら、レスもせずにもうしわけありません。

それで教えていただいたものを試してみたのですが、Commandボタンにたきさんが書き込まれたコードをいれたら正常に終了するようになりました。
しかし、やはりwindowsのタイトルバー右にあるxボタン(閉じるボタン)で終わらせるとシステム情報に残ったままなんです。

このXボタンを押したときに何かプログラムを走らせれば解決しそうなんですが、これってどう書いたらいいんでしょうか?たとえば
privat  sub  Form_unload()
とかそういうの、すみませんがおしえていただけないでしょうか?


nanashi  2003-03-27 19:15:15  No: 106318

FormのQueryUnloadイベント調べてみ。


ソシム  2003-03-28 23:58:59  No: 106319

Unloadイベントですか、知りませんでした。
それで、今回の件に関しては解決はしたのですが、2つほど質問させてください。

これを使うと、例えばいくつかフォームがあって、form1から他のフォームを開くとき、vbModeless  でform1をunloadさせる場合にもイベントが発生してしまって他のフォームを開けなくなってしまうんじゃないでしょうか?

それと、原因がいまだわからないのでどういった理由でこういう現象がおきるのですか?


nanashi  2003-03-29 00:23:39  No: 106320

UnloadイベントじゃなくてQueryUnloadイベントです。
UnloadMode引数によって処理を分ければ良いです。
てゆーかMSDN調べてください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加