Tải bản đầy đủ (.pdf) (12 trang)

Tài liệu Lập trình C trên Windows Kỹ thuật lập trình Hook doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (210.96 KB, 12 trang )

1
Lập trình C trên Windows
Kỹ thuật lập trình Hook
(phụ lục)
Nguyễn Tri Tuấn
Khoa CNTT – ĐH.KHTN.Tp.HCM
Email: nttuan@ fit.hcmuns.edu.vn
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 2
Nội dung

Lập trình sự kiện

Giới thiệu kỹ thuật Hook

Minh họa cách lập trình Hook
2
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 3
Lập trình sự kiện
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 4
Giới thiệu kỹ thuật Hook

Hook là gì ?

Mục tiêu của Hook ?

Các loại Hook

Thủ tục Hook (Hook procedure)

Chuỗi Hook (Hook chain)
3


Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 5
Giới thiệu kỹ thuật Hook – Hook là gì ?

Hook là một cơ chế trong lập trình sự kiện,…

…cho phép ứng dụng có thể cài đặt một hàm
giám sát vào quá trình lưu chuyển các thông
điệp
Æ ứng dụng có thể chặn và xử lý các thông
điệp trước khi nó đến được cửa sổ/ứng dụng
đích
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 6
Giới thiệu kỹ thuật Hook – Hook là gì ? … (tt)
4
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 7
Giới thiệu kỹ thuật Hook – Hook là gì ? … (tt)

Có 2 cách cài đặt Hook:

Cài đặt cục bộ (Thread Hook): hàm giám sát
được cài vào sau Thread message Queue Æ có
tác dụng giám sát tất cả các thông điệp trong
một tiểu trình hay một ứng dụng cụ thể

Cài đặt toàn cục (Global Hook): hàm giám sát
được cài vào sau Systemd message Queue Æ
có tác dụng giám sát tất cả các thông điệp trong
toàn hệ thống

Với Global Hook, hàm cài đặt phải được lưu

trong một DLL
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 8
Giới thiệu kỹ thuật Hook – Mục tiêu của Hook ?

Giám sát bàn phím: các ứng dụng gõ tiếng
Việt, điều khiển thiết bị bằng bàn phím,…

Giám sát mouse: Click’n See

Theo dõi việc sử dụng các ứng dụng,
Capture screen

Ứng dụng dạy học bằng máy tính (CBT –
Computer-based Training)


5
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 9
Giới thiệu kỹ thuật Hook – Các loại Hook ?

WH_KEYBOARD: Hook giám sát thông điệp từ
bàn phím: WM_KEYDOWN, WM_KEYUP

WH_MOUSE: Hook giám sát thông điệp từ chuột

WH_GETMESSAGE: Hook giám sát thông điệp
chung (keyboard, mouse, hay các message khác)

WH_CBT: Windows gọi hàm hook CBT trước khi
tạo lập (create), kích hoạt (active), hủy (destroy),

minimize, maximize, di chuyển (move), thay đổi
kích thước (size),… của cửa sổ giao diện
Spring 2004C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 10
Giới thiệu kỹ thuật Hook – Các loại Hook ?...(tt)

WH_JOURNALPLAYBACK: cho phép đưa
message vào System message queue Æ sử
dụng để giả lập hay thực hiện lại 1 dãy các
message của bàn phím hay mouse
(playback). Đây là một Global Hook

WH_JOURNALRECORD: giám sát và ghi
nhận lại (record) các thông điệp từ chuột và
bàn phím. Đây là một Global Hook


×