現在VB2005にて常駐アプリの開発を行っています。
OSはWindowsXPです。
起動はOS起動時にスタートアップより起動するのですが、
OSのシャットダウン時に常駐アプリが終了していない為、
「このプログラムからの応答がありません(待機、終了、キャンセル)」が表示されます。
この方法を回避するには、シャットダウンを常駐アプリ側で検知してアプリ自身が終了処理をすると思いますが、方法がよくわかっていません。
http://dobon.net/vb/dotnet/system/sessionending. …
↑のURLを参照してみたのですが、シャットダウン時にメッセージの表示はされるのですが、メッセージ表示部をアプリ終了処理に置き換えても、終了処理が行われませんでした。
どなたか、お分かりになる方ご教授いただければと思います。
No.4ベストアンサー
- 回答日時:
クラスの生成で外部アプリを起動ってインスタンスの事です?
Newメソッド内でやってるなら、あまりよろしくないので今後はやめた方がよいかと・・・
それはさておき、外部アプリの終了ですが
恐らく新しいプロセスを生成して実行してると思います。
そのプロセスをkillメソッドでやっつけてやればいけませんか?
oboroxxさんの回答と同じですが。
アドバイスありがとうございます。
プロセスをkillとは、思いつきませんでした。
外部プログラムを強制終了することで、いけそうです。
No.3
- 回答日時:
FormのClosingイベントにおいて、引数のFormClosingEventArgsのCloseReasonを調べて、これがWindowsShutdownであれば、外部プログラムを終了させるようにして、自身も終了するようにしてはどうでしょうか。
No.2
- 回答日時:
終了処理の記述ありがとうございます。
多分主要な全ソースを出すほうがいいかも。
ちなみにコンソールアプリじゃないですよね?
.NETでwindowsアプリを作ってるなら、シャットダウンでぱつんと落ちる事が殆どだと思う(乱暴だけどそもそも終了処理記述しなくてもよい)んですが、タイマー使ったりスリープ使ったりして待機したり・・・・
ちなみに、こちらで参考サイトのソースをまるごとコピーして、
If MessageBox.Show(s + vbNewLine + "キャンセルしますか?", _
"質問", MessageBoxButtons.YesNo) = DialogResult.Yes Then
'キャンセルする
e.Cancel = True
End If
この部分を
application.exitにしたら
windowsシャットダウンしましたよ。(アプリは消えなかったですが(笑)
他に待機処理が入ったりしてませんか?もしくは外部アプリ実行結果を待ってたり・・・
古いですが、下記が参考になるかも?
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/2006 …
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
この回答への補足
Unripe01さん、ありがとうございます。
説明不足ですいません。
ご指摘のとおり、外部アプリと連動しています。
簡単に説明をさせていただくと、VBアプリで、外部アプリを起動しています。(クラスの生成で起動)
外部アプリがハードウェアからの情報を受け取り、それをVBアプリで加工して出力しています。
OSシャットダウン時に、外部アプリが起動したままなので、正常に終了しません。
生成したクラスを削除すれば、外部アプリが終了するかと思っていましたが、クラスの削除について、調べているところで、解決には至っていない状態です。
参考URLありがとうございます。
2つとも見つけてはいたのですが、解決には至りませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 Media Playerが開かない。ファイルアイコンを右クリックしても「プロパティ」が表示されない。 2 2023/02/05 14:45
- フリーソフト AOMEI Backupper でバックアップが取れない 2 2022/07/17 22:28
- デスクトップパソコン windows7を使っているパソコンでの質問です。先日動作が遅く再起動かけると「windowsを起動 9 2022/06/16 21:31
- デスクトップパソコン タスク、プログラム実行後に自動シャットダウンしたい 3 2023/08/25 18:01
- デスクトップパソコン ブルーレイ再生時にモニターが切り替わる 2 2022/11/04 05:18
- Windows 10 デスクトップパソコンHDD1tbと新しくSSD1tb追加しましたか新しいSSDに Windows10 5 2023/04/18 10:46
- アプリ 実行中のアプリ 1 2022/11/23 08:57
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
- iPhone(アイフォーン) 容量は半分以上あるのにアプリが強制終了する理由はなんですか? CPUがどのような状態なのでしょうか? 8 2023/08/27 00:50
- その他(OS) Widgets.exeがオーバーランしました とでます 1 2022/10/15 23:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
エクセルが勝手に立ち上がる
-
MFCのView終了時の終了確認
-
VBA kernel32 の意味
-
VBA メッセージボックスを自動...
-
Excel VBA で処理中断(DoEvents...
-
Application.ScreenUpdating=Fa...
-
【MFC】イベントの無効化について
-
スロットゲームのプログラミング
-
VB.NET開発(イベントプロシー...
-
MFCダイアログの終了判定
-
ダイアログボックスを利用した...
-
マウスのクリックを無視したい
-
エディットコントロールへの表示
-
<input type="file">タグで「キ...
-
Excelのワークシートに行を挿入...
-
OSシャットダウン時の常駐アプ...
-
VB6 コマンドボタン クリック...
-
Excel VBA 自動的に閉じるMsgBox
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
VBA kernel32 の意味
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
エクセルVBAでクリップボード内...
-
Application.ScreenUpdating=Fa...
-
Excel VBA で処理中断(DoEvents...
-
VBA メッセージボックスを自動...
-
VBA、UserFormを前面に出力して...
-
【C#】 あるイベントから別イ...
-
ASP.NETでのメッセージ画面を出...
-
Excel VBA 自動的に閉じるMsgBox
-
キーボード入力、マウス操作を...
-
スロットゲームのプログラミング
-
<input type="file">タグで「キ...
-
Excelのワークシートに行を挿入...
-
ボタンが押された事を検知する...
-
VB6 コマンドボタン クリック...
-
Stack around the variable 'xx...
おすすめ情報