Windowsスリープからの復帰でDBの再接続を遅延したい

解決


studio-take  2014-08-26 01:24:53  No: 46632  IP: [192.*.*.*]

いつもお世話になります。

社内のスケジュール共有ソフトを組んだんですが、スリープ設定をされて方のパソコンが復帰した際に直後にDBにアクセスして、DBのOpenエラーが出てしまいます。
ソフトはタスクトレイの中に常時起動しているタイプで、Timerで更新をかけています。

使っているのは、Firebird + DBExpressです。
WindowsMessageでスリープのメッセージとか拾えるのかなと検索したんですが、いい答えは拾えませんでした。

なにかいい方法はないでしょうか。

編集    削除
通りすがり  2014-08-26 05:00:00  No: 46633  IP: [192.*.*.*]

WM_POWERBROADCAST message (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa373247.aspx

でどうですか?

編集    削除
studio-take  2014-09-03 23:44:19  No: 46634  IP: [192.*.*.*]

ありがとうございます。
遅レスすいません。

//スリープメッセージの取得
procedure TfrmMain.GetWindowsPower(var Msg: TMessage);
begin
  inherited;
  case Msg.WParam of
    PBT_APMQUERYSUSPEND:begin
                          timWakeup.Enabled := False;
                          timReRead.Enabled := False;
                          timNext.Enabled   := False;
                          timWakeupLag.Enabled := False;
                        end;
    PBT_APMRESUMEAUTOMATIC:begin
                          timWakeupLag.Enabled := True;
                        end;
  end;
end;

とりあえず、タイマーで1分タイムラグを作ったら、データーベースのオープンエラーを回避できました。

編集    削除