메신져에는 일정시간동안 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;
메신져에는 일정시간동안 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;
그럼...