最近写一个delphi客户端,遇到一个自动登录问题,已经解决了思路如下:
1.在Form的oncreate事件中读取用户配置文件,检查及处理是否保存了用户密码,是否自动登录,如果需要自动登录,
2.在Form的FormActivate事件中处理自动登录业务,因为这个activate事件发生于formshow出来之后
用这个windows函数发送消息: PostMessage(Handle,UM_CHECKFirsTRUN,0);
定义自己的函数来捕获处理消息:
---------------------
作者:银河使者
来源:CSDN
原文:https://blog.csdn.net/zkrui2008/article/details/40511597
版权声明:本文为博主原创文章,转载请附上博文链接!
procedure UmCheckFirstRun(var Message: TMessage); message UM_CHECKFirsTRUN; procedure TForm1.UmCheckFirstRun(var Message: TMessage); begin delay(1000); //延迟一个时间,不然用户会很诧异 readyLoginData; //处理自动登录业务的方法 end; --------------------- 作者:银河使者 来源:CSDN 原文:https://blog.csdn.net/zkrui2008/article/details/40511597 版权声明:本文为博主原创文章,转载请附上博文链接!
begin //sleep(1000); PostMessage(Handle,0,0); end;
//延迟指定时间 procedure delay(msecs:integer); var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil,False,nil); try Tick := GetTickCount + DWord(msecs); while (msecs > 0) and (MsgWaitForMultipleObjects(1,Event,msecs,QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; msecs := Tick - GetTickcount; end; finally CloseHandle(Event); end end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。