You are on page 1of 4

1. Class KeylogListener trong package controller.

- Chức năng: với mỗi thao tác click chuột lên các nút đã được liệt kê trong
KeylogDesign bên trên, KeylogListener sẽ chứa các phương thức để xử lí tương ứng,
- Thành phần :
+ Thuộc tính KeylogDesign: xác định đối tượng cửa sổ mà KeylogListener sẽ xử lí các
nút trên đó.
+ Phương thức KeylogListener( KeylogDesign keylogDesign):
 Là phương thức setter thuộc tính KeylogDesign cho class.
 Tham số truyền vào: xác định cửa sổ giao diện mà class KeylogListener sẽ xử
lí là keylogDesign thuộc class KeylogDesign.
 Thực hiện công việc: set thuộc tính keylogDesign.
+ Phương thức Hook():

 Là phương thức sẽ được gọi để xử lí khi người dùng click vào nút HOOK trong
giao diện.
 Tham số truyền vào: không có.
 Thực hiện các công việc: gửi dòng lệnh “HOOK” từ client sang server.
+ Phương thức Unhook():

 Là phương thức sẽ được gọi để xử lí khi người dùng click vào nút UNHOOK
trong giao diện.
 Tham số truyền vào: không có
 Thực hiện các công việc: gửi dòng lệnh “UNHOOK” từ client sang server.
+ Phương thức ShowText():

 Là phương thức sẽ được gọi để xử lí khi người dùng click vào nút SHOW TEXT
trong giao diện.
 Tham số truyền vào: không có
 Thực hiện các công việc: Gửi dùng lệnh “SHOWTEXT” từ client sang server;
nhận lại kết quả sau khi bắt phím từ phía Server, sau đó lưu vào biến String
keylogString; in keylogString ra khung txtKeylog.
+ Phương thức ClearText():

 Là phương thức sẽ được gọi để xử lí khi người dùng click vào nút CLEAR TEXT
trong giao diện.
 Tham số truyền vào: không có.
 Thực hiện các công việc: xoá toàn bộ văn bản đang hiển thị trên ô văn bản
txtKeylog có trong giao diện.
+ Phương thức actionPerformed(ActionEvent e):
 Là phương thức sẽ được gọi để xử lí khi người dùng click vào nút trong giao
diện.
 Tham số truyền vào: ActionEvent e, đây là biến lưu lại hành động click chuột
lên phím
 Thực hiện các công việc: xét xem người dùng đã click vào phím nào bằng việc
tên nút được bấm vào biến click dưới dạng một String bằng dòng lệnh: click =
e.getActionCommand(). Với mỗi giá trị của click, ta sẽ gọi một trong bốn
phương thức Hook, Unhook, ClearText, ShowText tương ứng đã nêu ở trên
để xử lí.
I. Server
1. Class Keylog trong package model.
- Là class chứa các phương thức của thư viện Jnavtivehook, hỗ trợ cho quá trình
Keystroke.
- Thành phần:
+ Thuộc tính keylog: thuộc tính keylog thuộc lớp String dùng để lưu lại các phím đã
được bắt từ Server.

*Dưới đây là các phương thức có sẵn trong thư viện, người viết ứng dụng chỉ chỉnh sửa đôi chút để
phù hợp với nhu cầu dùng.
+ Phương thức nativeKeyPressed(NativeEvent e)
 Là phương thức nhận diện những nút đã được nhấn (không cần biết nút đã
được thả ra hay chưa)
 Tham số truyền vào: NativeEvent e, chỉ các nút đã được bấm.
 Thực hiện công việc: gán tên phím vừa được bấm vào biến String key (lấy tên
phím bằng hàm getKeyText(); xét xem key có phải là các nút đặt biệt như
Shift, Tab, Caps Lock,… hay không, nếu phải thì cộng biến key vào trong thuộc
tính keylog (đã nêu ở trên), nếu không phải thì return (mục đích để phân biệt
những phím viết hoa, viết thường, những kí tự đặc biệt).

+ Phương thức nativeKeyReleased(NativeEvent e)


 Là phương thức nhận diện những nút vừa được thả ra.
 Tham số truyền vào: NativeEvent e, chỉ các nút đã được thả.
 Vì nhu cầu người dùng không cần chức năng này nên phần bên trong hàm sẽ
được để trống.
+ Phương thức nativeKeyTyped(NativeEvent e)
 Là phương thức nhận diện những nút đã được nhấn (ví dụ nhấn tổ hợp Shift
+ “a”, ta sẽ thu được phím A, tuy nhiên, phím chỉ có thể nhận diện được bảng
chữ cái, chữ số và các kí tự như * # !,..).
 Tham số truyền vào: NativeEvent e, chỉ các nút đã được thả.
 Chức năng: xét xem phím vừa bấm có phải các phím đặc biệt như Tab, Shift,…
hay không, nếu không thì cộng thêm vào thuộc tính keylog, nếu phải thì
return.

+ Phương thức KeyLogger(KeyLog keyLog)


 Là phương thức bắt đầu quá trình bắt phím tại Server.
 Tham số truyền vào: đối tượng keyLog thuộc class KeyLog.
 Chức năng: addNativeKeyListener: gọi trình nhận phím; registerNativeHook:
bắt đầu quá trình bắt phím. (2 hàm này là hàm sẵn có trong thư viện).

+ Phương thức UnKeyLogger(KeyLog keyLog)


 Là phương thức kết thúc quá trình bắt phím tại Server.
 Tham số truyền vào: đối tượng keyLog thuộc class KeyLog.
 Chức năng: removeNativeKeyListener: tắt trình nhận bắt phím trên server;
unregisterNativeHook: kết thúc quá trình bắt phím. ( 2 hàm này là hàm sẵn có
trong thư viện).
2. Class main
- Vì tính chất của giao diện, nên class main bên server sẽ chứa tất cả các phương thức
xử lí các nút bấm bên server.
- Thành phần:

+ Phương thức Hook:


 Là phương thức sẽ được gọi khi server nhận được dòng lệnh HOOK từ client.
 Chức năng: Gọi phương thức KeyLogger trong thuộc class Keylog trong
package model để bắt đầu quá trình bắt phím
+ Phương thức Unook:
 Là phương thức sẽ được gọi khi server nhận được dòng lệnh UNHOOK từ
client.
 Chức năng: Gọi phương thức UnKeyLogger trong thuộc class Keylog trong
package model để kết thúc quá trình bắt phím
+ Phương thức Showtext():
 Là phương thức sẽ được gọi khi server nhận được dòng lệnh SHOWTEXT từ
client.
 Chức năng: sau quá trình KeyLogger và UnKeyLogger ở trên, các phím được
bắt sẽ được lưu vào thuộc tính keylog của đối tượng keylog, phương thức
Showtext sẽ gửi chuỗi keylog này sang client để client hiển thị.
+ Phương thức main:

 Chức năng: Kết nối Client và Server, nhận các dòng lệnh từ server, sau đó gọi
các phương thức xử lí tương ứng đã lưu ở trên.

You might also like