PDA

View Full Version : Xin cho ý tưởng về hàm log out khỏi chương trình



gato
15-08-2004, 00:53
Hiện nay, tôi đang viết một ứng dụng. Nhưng về vấn đề bảo mật thông tin, muốn cho hệ thống tự động log out khi người sử dụng không dùng mày trong một khoảng thời gian nhất định.
Sử dụng một Timer là điều tất nhiên. Nhưng làm sao để có thể biết người sử dụng đang không sử dụng máy nữa? (Không bấm phím và rê chuột).
Tôi cũng có ý tưởng, nhưng có vẻ hơi phức tạp, xin ý tưởng của mọi người để tham khảo.

alleycat
16-08-2004, 11:44
Bạn dùng Timer là điều tất nhiên, góp ý nhanh của tôi: Bạn khai báo một biến public Boolean (let's say myIdle as Boolean), cho hàm Form_KeyDown (và bất cứ Object nào trong Form) trả về False nếu có phím bấm (dùng Keydown để bắt được hết các phím, thay vì KeyPressed). Trong Timer1_Timer, khai báo một biến đếm static (let's say static myCounter as Integer) và cho Timer gọi kiểm tra myIdle, nếu sau một khoảng thời gian nào đó (do bạn đặt, let's say Timer interval = 1000 = 1 giây => bạn muốn sau 5 phút thì đặt điều kiện cho mycounter tới 300) Idle vẫn bằng True thì log out.
Bên cạnh đó, để myIdle không bị False hẳn, trong các hàm KeyDown sẽ gọi đến một timer khác nhằm "đánh thức" myIdle, giả sử sau 5 giây KeyDown, myIdle sẽ trở lại True
Như vậy, Timer1 mới bắt được myIdle.
Tôi hoàn toàn không có thời gian online, mặc dù rất muốn chia sẻ học hỏi, nếu bạn cần code rõ ràng kèm ví dụ, mail cho tôi theo taphan@molex.com, OK ?

alleycat
16-08-2004, 11:46
Quên, cần cả cho hàm MouseMove nữa, :P
Vì phải bắt cả chuột nữa mà (I'm a cat, by the way).
Phương thức như trên.

gato
17-08-2004, 00:40
Rất cảm ơn ý tưởng của bạn. Mình sẽ thử làm theo ý tưởng của bạn.

gato
20-08-2004, 23:42
Bạn ơi, có thể gửi cho mình source được không? Mình đã gửi mail cho bạn, nhưng không được. Làm ơn gửi cho mình theo mail: ndhieu2001@yahoo.com. Cam on nhieu!

alleycat
22-08-2004, 02:35
Sao ko gửi mail dc à bạn ? bạn thử TuanAnh.Phan@molex.com xem ?
OK, mình sẽ gửi demo cho bạn vào thứ 2 tới.

jiSh@n
23-08-2004, 11:00
Cái đó là đón bắt bên trong chương trình của bạn chứ ko phải trong hệ thống. Muốn thực hiện trên toàn hệ thống thì bạn nên đón bắt OnIdle của hệ thống. Khi người dùng ko sử dụng máy sau một khỏang thời gian thì hệ thống sẽ rơi vào trạng thái Idle, lúc đó hãy bật timer để định giờ.

mel
23-08-2004, 12:34
Đúng rồi, phải bắt Idle của hệ thống mới đúng chứ

gato
23-08-2004, 23:44
jSh@n và mel có thể chỉ rõ hơn cho mình được không? Làm thế nào để bắt được Idle của hệ thống?

gato
01-09-2004, 23:25
alô, có bác nào giúp được ko? Giúp tui với

Shinichi Heroine
02-09-2004, 02:54
xài ké cái screen saver á !

không thì dùng hàm getmousepoint hay getmousecursor á (nhớ hông chính xác) lưu lại tọa độ X,Y của chuột, sau khỏang thời gian không change là lock

key thì cũng tương tự vậy !

gato
02-09-2004, 09:13
ặc, không nói cụ thể được à? Shinichi đã làm chưa?

Shinichi Heroine
03-09-2004, 03:32
ặc, không nói cụ thể được à? Shinichi đã làm chưa?

làm lâu rồi nhưng = delphi cơ !

coi ở đây : http://vietapi.com/vxoops/modules/newbb/viewtopic.php?topic_id=10&forum=2

gato
04-09-2004, 11:18
ặc, thế không chi tiết hơn được à? Híc. Nói như vậy khó quá.

alleycat
05-09-2004, 09:28
To Gato: Bạn đã nhận được demo của mình chưa ? mình gửi cũng lâu rồi.
To Jishan: Yes, chỉ bắt idle trên chương trình của bạn gato thôi bạn ạ, vì như mình hiểu thì "tôi đang viết một ứng dụng. Nhưng về vấn đề bảo mật thông tin, muốn cho hệ thống tự động log out" tức là hệ thống của bạn gato chứ ko fải là OS.
Nhưng sau một thời gian mà OS tự động log out (nếu hiểu theo: hệ thống = OS) thì cần gì phải phức tạp nhỉ ? bạn chỉnh system power scheme là được mà, :), cho shutdown luôn sau 1 khoảng thời gian, khỏi cần log out cho mệt. Hì
Hàm Shinichi nói là API "getcursorpos" đúng ko ? (cũng ko nhớ chính xác tên nữa, lol). Dùng cái đó bắt mouse được, nhưng key thì sao ?

alleycat
05-09-2004, 09:36
Link của Shinichi về API cũng khá hay, bạn gato nên tham khảo

Shinichi Heroine
05-09-2004, 10:33
quá khen rùi !

về bàn phím chắc làm cái hook key , dễ mà, dễ hơn khi làm cái keylogger hoặc viet key ! :)

gato
06-09-2004, 22:48
To alleycat: Mình không nhận được bản demo của bạn. Làm ơn gửi lại giúp mình được không? Cảm ơn nhiều nhé. Địa chỉ mail của mình: ndhieu2001@yahoo.com