我在主窗口中的onCreate事件中写:
  Application.onMessage:=myMessage;
在myMessage中进行判断:
 if msg.Message=WM_KEYDOWN or msg.Message=WM_MOUSEMOVE then
  Label1.Caption:=DatetimetoStr(now);最后发现即使我没有移动鼠标和敲击键盘,他还是会每隔6秒进行刷新Label1的内容!为什么呢,为什么它会获得WM_KEYDOWN 和WM_MOUSEMOVE 这两个消息呢,我要获得最后一次的操作时间应该怎么做呢

解决方案 »

  1.   

    我把你程序写进去,是没错的
    我不操作,就不出错的.
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Label1: TLabel;
        procedure FormClick(Sender: TObject);
      private
        procedure myMessage(var Msg: TMsg; var Handled: Boolean);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}
    procedure TForm1.FormClick(Sender: TObject);
    begin
      Application.onMessage:=myMessage;
    end;procedure TForm1.myMessage(var Msg: TMsg; var Handled: Boolean);
    begin
     if (msg.Message=WM_KEYDOWN) or (msg.Message=WM_MOUSEMOVE) then
      Label1.Caption:=DatetimetoStr(now);
    end;end.
      

  2.   

    那为什么会出现那种情况呢,是不是和我的delphi或者windows有关呢?