POP3を利用してメールを受信するソフトを作成しているのですが、メール受信中にサスペンドへ入ると強制的にPOP3からログアウトになる症状に気がつきました。
そしてサスペンドに入ってからすぐに復帰→再接続指示→再度POP3に接続しようとすると、メールサーバから
「-ERR Double Login」というエラーが発生して数分間の間再接続することができなくなってしまいました。
強制的にログアウトされるのはともかく、「-ERR Double Login」エラーの為に再受信を数分間待たされる件についてなんとか解消したいと考えています。
対処法をご存知の方は教えてください。よろしくお願いいたします。
よろしくお願いいたします。
サスペンド前にイベントを拾って切断するとか、
以下、参考になりますか?
サスペンド(休止やスタンバイ)のイベントを得る方法
http://oshiete1.goo.ne.jp/qa1713868.html
WndProc (WindowsProcとも言われたりします)を利用します。
> 私のコードが悪いのか今のところ問題が解決していません。
具体的には、毎回終了処理がサーバ側に伝わらないのではなく
たまに「-ERR Double Login」エラーがサーバから返される症状が発生するようです。
メールサーバの終了処理が伝わる前に、サスペンドへ完全に移行するケースがあるため
サスペンド前のログイン情報がサーバ側で継続されてしまっているのではないかと
想像しています。
しかし、毎回ノートパソコンの蓋を閉じてテストしているのでサスペンド移行の瞬間が確認できず、
実際はどうなのか検証する方法すら分かりません。
よろしくお願いいたします。
デスクトップ用Windowsでサスペンドに入らない方法をご存じの方も返答お待ちしております。
また、
サスペンドに入らない方法
ということであれば、紹介したページにある
スタンバイや休止状態を阻止する方法(サンプルコード付)
http://msdn.microsoft.com/ja-jp/library/cc440889.aspx
が参考になりませんか?
フォームの WndProc メソッドをオーバーライドして、WM_POWERBROADCASTメッセージ時に休止状態を拒否する値 (BROADCAST_QUERY_DENY) を設定すれば良いらしいです。
http://msdn.microsoft.com/ja-jp/library/cc440889.aspx
スタンバイや休止状態を阻止する方法 - MSDN
そこで、ユーザが誤ってノートパソコンの蓋を閉めたり、サスペンドボタンを押しても
サスペンド動作に入らない方法をご存じの方お待ちしております。
特にVista以降にも対応している方法でお願いします。
ダブってしまいましたですね。
コンピュータの電源ボタンを押しても、スタンバイまたは休止状態になることはありません。
とありますが、上手く機能しないということでしょうか。
私はWindows7 64bit HomePremiumノートパソコンの蓋を閉めてテストしていたのですが
上手く動作しません(=サスペンドモードになる)でした。
最終更新日は、2005 年 10 月 6 日ですから、その後のOSについては方針が変わって
しまっているのでしょうね。