我在设计一个与数据库有关的应用程序,希望应用程序空闲(没有接受任何输入)5分钟后就自动关闭或注销为保护状态,必须再次登陆才能继续工作。怎么办?
解决方案 »
- 求教delphi数据库语句问题,HELP!大神来,来就有分!
- ToolBar做MDI程序的主菜单,如何在子菜单中添加子窗口标题?
- 如何响应TREEVIEW中的NODE事件,比如我单击某个节点,能弹出一个对话框
- 一个动态产生DBEdit控件的绑定问题!!
- 如何使用ftp控件
- “还原数据库”功能 怎么样动态编程实现(用ADO+SQL server 2000)
- 50分 > 怎么实现这样的功能啊?
- 系统快捷键被程序给屏蔽了,如何重新启用快捷键
- listview怎么显示大图标??
- 是不是表名不能当Tquery的参数传递
- 100分求源代码
- 谁能提供NMEA 0183协议说明及RTCM104标准语句,和GPS接收器通讯用?
数据库的相关操作放在辅助线程的执行函数中执行,然后辅助线程不断发送自定义消息,由主线程判断,如果辅助线程在处理就返回TRUE否则返回FALSE,然后主线程根据这个判断。比较两个消息的时间差就可以,达到5分钟就CUT了。消息要是你自己定义,产生消息的时间作为一个域,这里举个小例子,你自己试试。
消息体结构:
{
消息标识;
消息产生时间;
消息的处理返回值;
}
然后辅助线程(处理数据库的线程)每处理一次就发送一条信息,并且消息的返回值为TRUE,
对于应用程序不是当前活动的应用程序的情况,利用Application的OnActivate事件和OnDeactivate事件来设置计时器。
以上是我的一些经验,已经实践过了,功能实现了,但感觉不简洁。
猜想:
最好对所有的输入和输出在应用程序设计时考虑必须经过的公共通道(就象上面说的KeyDown事件)。也许还可以重载WndProc方法来实现。
如果有了简单的方法请告诉俺一声。