怎样得出用户多久没有鼠标和键盘动作??

ddsft 2003-05-14 03:08:56
怎样得出用户多久没有鼠标和键盘动作??
...全文
50 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GaoLun 2003-08-26
  • 打赏
  • 举报
回复
Edit1->Text=MinutesBetween(LastTime,Now());

应该是笔误
ddsft 2003-05-15
  • 打赏
  • 举报
回复
Edit1->TextMinutesBetween(LastTime,Now());//这一行是什么意思?

其中:TextMinutesBetween是什么意思?
yyfzy 2003-05-14
  • 打赏
  • 举报
回复
我是这样实现的,已经测试。
原理:
使用消息影射,捕捉WM_NCHITTEST和WM_KEYDOWN消息,记下有这样的消息的时间,然后用Timer检查当前时间和记录时间的差值。

实现:
头文件,加上消息函数、全局变量和影射定义
private:
TDateTime LastTime;//最后一次活动时间
void __fastcall MessageHalder(TMessage & Msg);;//消息函数
protected:
BEGIN_MESSAGE_MAP //影射
VCL_MESSAGE_HANDLER(WM_MOUSEMOVE|WM_KEYDOWN, TMessage, MessageHalder)
END_MESSAGE_MAP(TControl)


实现文件:
#include <DateUtils.hpp>


void __fastcall TForm1::FormCreate(TObject *Sender)
{
LastTime=Now();//默认最后活动时间
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MessageHalder(TMessage & Msg)
{
LastTime=Now(); //最新后动时间
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int i=0;
Edit1->TextMinutesBetween(LastTime,Now());//已经有多少分钟没有反映
i++;
}
//---------------------------------------------------------------------------
你自己试试,不知道能不能满足你的要求


penu 2003-05-14
  • 打赏
  • 举报
回复
还得加个定时器。
紫去秋来 2003-05-14
  • 打赏
  • 举报
回复
这个事件是OnMessage,该控件在Additional页,建议用BCB5,不要用BCB6,因为6有时会出莫名其妙的问题,可以令人疯掉。
紫去秋来 2003-05-14
  • 打赏
  • 举报
回复
使用BCB5,6自带的控件TApplicationEvents,它有一个事件,当有鼠标或键盘动作,就会进入该事件,下面就不用我教你了吧?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧