Q&A

  • [질문] 일정 시간 작업이 없으면 자동 로그 아웃시키려면?
델파이4.0 에 오라클 9i 사용이구요

ERP 프로그램에서 일정시간 작업이 없으면 자동으로 로그아웃시키려고 하는데요

어떤 방법이 있을까요?

3  COMMENTS
  • Profile
    장성호 2008.11.28 03:31

    메신져에는 일정시간동안 pc를 사용하지 않으면 "자리비움"으로 자동 상태표시가 변경되는 기능이 있는데

    이경우 메신져뿐 아니라 전체 시스템에 키보드나 마우스 등을 감시해야 하죠


    그러나 님이 하는것은 "pc사용하지 않으면"이 아니라
    단지 erp프로그램 사용하지 않으면 로그아웃 시키겠다는것인데


    이경우 현재 프로그램으로 들어오는 마우스나 키보드 메세지가 일정시간 들어오지 않으면
    로그아웃 시키면 되겠죠?


    일정시간.. 즉 체크할 타이밍은 timer를 이용하면 될것이구

    프로그램 전체에 들어오는 mouse 및 키보드 메세지는 Application.OnMesssage이벤트 핸들러에서 체크할수 있습니다.


    1) 전역변수 하나 만들어 두구요

    var
    iUseTickCount: Integer;

    2) Timer에서는 저 iUseTickCount만 체크해서
    현재 시간과 비교해 일정시간이 지났으면 로그아웃 하면 되겠죠

    3) Application OnMessage 이벤트 핸들러를 걸어두고

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.OnMessage:= AppMessage;
    end;

    procedure TForm1.AppMessage(var Msg: tagMsg; var Handled: boolean);
    begin
    if (Msg.Message>= WM_MOUSEFIRST ) and (Msg.Message>= WM_MOUSELAST ) then
    iUseTickCount:= GetTickCount;

    if (Msg.Message>= WM_KEYFIRST) and (Msg.Message>= WM_KEYLAST ) then
    iUseTickCount:= GetTickCount;

    end;


    4) 타이머에서는 iUseTickCount 가 GetTickCount 와 일정 크이 이상 차이나면...

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    //
    end;



    그럼...



  • Profile
    구창민 2008.11.29 03:01
    안녕하세요..
    아주 간단한 방법이 있어 링크를 달아 드립니다..

    http://newsgroups.cryer.info/borland/public.delphi.nativeapi.win32/200608/0608175619.html

    즐거운 프로그래밍 하세요..
  • Profile
    부시구 2008.11.29 19:58
    kddg_min님.. 꼭 필요한 내용이었는데 감사합니다.