1、功能概要: 当用户开机启动操作系统的时候,该提醒工具自动连接PDM服务器,提示新消息; 2、开发方案: 1. 如何判断当前用户是否登录PDM: 在注册表的KEY_LOCAL_MACHINE\SOFTWARE\DDSoft下有一个键值“Current PLDM Version”,表示当前的PDM版本。如图所示: 2. 在对应PDM版本的注册表地址下有两个键值:“CurrUserId”和“CurrUserLastAccessTime”,如下图所示: CurrUserId表示上次登录的用户Id,CurrUserLastAccessTime表示最后一次响应的时间,用于当前是否有用户登录PDM的心跳检测,如果该值与当前时间值相差90秒,即可认为当前PDM没有用户登录。在U_Data.pas中增加一个Timer控件用来更新该键值. 3. 该程序定期访问PDM数据库,访问完之后自动断开数据库连接。在访问数据库的时候要访问PLDM.udl文件中的数据库连接字符串信息,该文件是加密的,需要在启动前先解密该文件(通过调用”PDMHlp32.exe” “/UnCompress PLDM.UDL PLDM.dbs”),将PLDM.UDL文件解密到PLDM.dbs文件中,然后再从中提取数据库连接字符串,提取完之后立即删除PLDM.dbs文件. 4. 该程序需要记录用户最后一次所提示的消息ID,当下次再连接数据库时只查找大于此ID的未读消息(即新消息)并提示给用户,但是第一次和登录后的第一次都是提示用户所有未读的消息. 5. 在没有手工登录的前提下,如果当前PDM用户处于登录状态,则该信息提醒工具自动处于登录状态,不需要输入用户名和密码,如果当前PDM用户处于离线状态,此时提醒工具处于离线状态. 6. 需要在PDM中实时更新CurrUserLastAccessTime,需要在PDM中设置开机自启动,默认为开机自启动。 7. 程序刚启动时显示当前PDM用户的所有未读消息,如下图所示: 确认之后,当以后有新的未读消息到来的时候,则再提示用户。 8. 系统设置: 9. 可以在PDM中的选项中进行设置是否开机自启动PDMIM程序,如下图所示: 10. 当PDM启动的时候,如果本机没有运行PDMIM,则启动PDMIM.exe程序 11. 消息提醒工具开发的流程图如下所示: 2 e+ L# U" L* \2 j; K6 X9 h
|