- ベストアンサー
"応答無し"になるまでの時間について
【環境】 WinXP Pro + VB6 SP5 【質問】 よくプログラムから応答がないと"応答無し"の状態に なってしまいますが、"応答無し"になるまでの時間設定は可能なのでしょうか? ご存知の方がいたら教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SendMessageTimeout()の説明に、 >スレッドが 5 秒以内に GetMessage または同様の関数を呼び出さなかった場合、SendMessageTimeout 関数は、そのスレッドがハングアップしていると見なします。 という記述があるので無理かと。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_sendmessagetimeout.asp
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>プログラムから応答がないと"応答無し"の状態に なってしまいますが アプリ・プログラムそのものは、自ずから好んで応答なしになるわけで無く、OSに応答したくても応答できないのではないですか。正常ループと返るべきウインドウ・メッセージがOSに返ってこないのと違いが判るのでしょうか。 だから監視しているOSがやらないと出来ないと思うのですが、一定時間アプリから応答なしだと、OSは画面にメッセージを返してくれましたっけ。CTRL+AL+DELを操作者がして、始めて応答なしを知るのではないですか(98)。Xpでは進歩してますか。 確かに色んなところに、何回(ケースでバラバラ)リトライして上手く行かないときは、メッセージを出すアプリは沢山あると思いますが。
- hana-hana3
- ベストアンサー率31% (4940/15541)
応答なし・・・って ふつうは、そのプログラムが「ハングアップ」していると言うことだと思いますが・・・。 つまり、お亡くなりになってる。
お礼
5秒と明示してあるので、例え10秒で帰ってくる関数があったとしても5秒でOSは"応答無し"のアプリになってしまうということですね。 通常の回避はDoEventsを入れるとか[×]ボタンを無効にするとかで対応できるのですが、XPは[×]ボタンを無効にしても"応答なし"ダイアログがでてしまうと[×]ボタン無効化が解除されてしまうので相談させていただきました。 又、別の方法を考えます。 ありがとうございました。