betty_bitty90

New Member

Download miễn phí Đề tài Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên Desktop Windows





LỜI MỞ ĐẦU 3

CHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH WINDOWS 4

I. Khái quát về lập trình trong Windows 5

II. Thông điệp và xử lý thông điệp 7

III. Giao diện thiết bị đồ họa GDI 11

IV. Cửa sổ trong Windows 15

V. Chương trình Windows tiếp nhận thông điệp chuột 22

CHƯƠNG 2: TÌM HIỂU VỀ HOOK 26

 1 - Chuỗi hook 27

 2 - Thủ tục hook 27

 3 - Các loại hook 28

 4 - Sử dụng hook 30

 5 - Hook trong Windows 3.x 31

 6 - Giới thiệu một số hàm liên quan đến hook 33

CHƯƠNG 3: KỸ THUẬT OVERRIDE HÀM API 36

I. Khái quát về kỹ thuật override 37

II. Lý do sử dụng kỹ thuật override trong lập trình Windows 37

III. Cơ chế hoạt động và quản lý bộ nhớ trên Windows 16bits 38

IV. Cơ chế hoạt động và quản lý bộ nhớ trên Windows 32bits 41

V. Hiện thực kỹ thuật override trên Windows 16bits 45

VI. Một số hàm được sử dụng trong kỹ thuật override 50

CHƯƠNG 4: KẾT XUẤT VĂN BẢN TRONG WINDOWS 54

I. Kết xuất văn bản trong Windows 55

II. Các hàm căn bản để kết xuất văn bản 55

CHƯƠNG 5: PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH 66

I. Phân tích vấn đề 67

II. Thiết kế chương trình 68

III. Giới thiệu một số hàm có liên quan 78

IV. Giới thiệu một số cấu trúc dữ liệu có liên quan 92

KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 97

 

 

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


RAM wParam;
LPARAM lParam;
- Hàm CallNextHookEx function chuyển các thông tin hook đến hàm xử lý hook kế tiếp trong hook chain.
- Thông số
hHook Chỉ định hook handle
nCode Chỉ định hook code để gởi đến hook kế tiếp. Hàm xử lý hook dùng giá trị này để chỉ định xử lý thông điệp được gởi từ hook thế nào.
wParam Chỉ định 16 bits thông tin mở rộng của thông điệp
lParam Chỉ định 32 bits thông tin mở rộng của thông điệp
- Giá trị trả về: Giá trị trả về là kết quả của quá trình xử lý và tùy thuộc vào thông số nCode.
Chương 3:
KỸ THUẬT OVERRIDE HÀM API
I - Khái quát về kỹ thuật override:
Override có nghĩa là: Thay thế một giá trị lúc run-time cho một giá trị đã có trong tập tin hay trong chương trình. hay tạo ra một đáp ứng lúc run-time thay cho tình huống dự kiến trong chương trình.
Đối với các hàm giao tiếp trong môi trường Windows thì khi Windows gọi đến các DLL (Dynamic Link Library – Thư viện liên kết động) tại các điểm nhập của các hàm Kernel, User, GDI… để xử lý các hàm được gọi trong ứng dụng thì chính ở thời điểm này ta có thể chen vào để có thể thực hiện việc hoàn tất bất kỳ thao tác xử lý gì. Việc chen vào ở thời điểm đó sẽ có 2 cách như sau dựa vào thời điểm để chen vào:
- Cách 1 : chen vào trước khi hàm API bị gọi được thi hành (front-end processing)
- Cách 2 : sau khi hàm API đã kết thúc việc thực thi thì ta cho chen vào dẫn đến việc thực thi một thao tác gì hay một công việc theo yêu cầu của ta (back-end processing).
Như vậy override các hàm thuộc giao tiếp Windows là một kỹ thuật cho phép developer can thiệp vào tiến trình gọi hàm API nhằm thực hiện một thao tác, một công việc gì đó theo mục đích của developer trước khi quá trình thực thi hàm API bắt đầu (theo cách 1) hay là ngay sau khi đã kết thúc việc thực thi hàm API (theo cách 2).
II - Lý do để sử dụng kỹ thuật override trong lập trình trên môi trường Windows:
Như vậy nếu sử dụng kỹ thuật override thì developer có thể lập trình để chen vào tiến trình thực thi các hành vi, thao tác xử lý riêng của mình bằng cách đón đợi thông báo gọi hàm API tương ứng từ chương trình ứng dụng và chuyển hướng điều khiển cho thực thi đoạn chương trình riêng đó mà không cần sửa đổi, biên dịch lại chương trình ứng dụng. Khi không cần thiết thì cơ chế override có thể được tắt đi và chương trình ứng dụng có thể trở về thực thi bình thường đúng chức năng của mình . Ngoài ra, override các hàm Windows API là một quá trình can thiệp động vào hệ thống nên kỹ thuật override là rất cần thiết trong trường hợp developer muốn bổ xung thêm hay sửa đổi một số chức năng hoạt động của tất cả hay chỉ một số ứng dụng đang chạy trong hệ thống mà không cần sửa chữa hay biên dịch lại các chương trình nguồn của ứng dụng. Mà dù có muốn thì developer cũng không thể làm được điều này bởi vì Windows không cho phép thâm nhập cũng như công bố bản mã nguồn của các ứng dụng đó. Từ đó ta thấy override xử lý các tình huống này hoàn toàn một cách tự động. Như vậy, trong Windows thì kỹ thuật override là một trong những kỹ thuật có thể được dùng như là phương tiện nâng cao chức năng của chương trình ứng dụng mà vẫn được sự chấp thuận của hệ thống Windows.
Một vài chương trình xử lý ngắt trong hệ điều hành DOS có thể được override bởi đoạn chương trình xử lý ngắt riêng của user bằng cách gán địa chỉ bộ nhớ nơi mà chương trình xử lý ngắt mới vào bảng vector ngắt tương ứng với số hiệu ngắt đồng thời lưu giữ địa chỉ của chương trình xử lý ngắt để trở về hay phục hồi bảng vector ngắt khi cần thiết. Mỗi khi có ngắt xảy ra hệ thống sẽ tham khảo bảng vector ngắt để xác định địa chỉ của chương trình phục vụ cần thi hành và chuyển điều khiển đến đó, lúc này đoạn chương trình của user có địa chỉ đặt trong bảng vector ngắt mới sẽ thực thi. Điểm trở về của chương trình sẽ do user quyết định: chuyển điều khiển đến lệnh kế tiếp sau lệnh đã xảy ra ngắt hay tiếp tục thi hành lệnh ngắt cũ rồi mới trở về. Từ đó trong Windows chúng ta sẽ tìm cách trỏ tới địa chỉ đoạn chương trình sẽ override hàm API thay vì hệ thống phải chuyển điều khiển tới địa chỉ đoạn mã thực sự của hàm API mỗi khi hàm được gọi.
Tuy nhiên do cơ chế quản lý bộ nhớ của Windows khác với DOS nên chúng ta phải tìm hiểu thật kỹ về cơ chế quản lý bộ nhớ của Windows để có thể tìm ra được giải pháp kỹ thuật thật tốt cho vấn đề override. Đặc biệt chúng ta cũng cần tìm hiểu sự khác nhau giữa Windows 16-bit và Windows 32-bit.
III - Cơ chế hoạt động và quản lý bộ nhớ trên Windows 16bits :
Windows 16bits tự động chạy ở chế độ “386 enhanced mode” ở các máy 386, bộ nhớ tối thiểu 2MB. Đó thực chất là chế độ standard với 2 đặc tính bổ sung:
Windows dùng các thanh ghi trang của 386 để hiện thực bộ nhớ ảo
Windows sử dụng chế độ ảo 8086 của 386 để đáp ứng chế độ đa nhiệm MS-DOS.
Chế độ 386 enhanced và chế độ standard đem lại cho Windows những lợi ích từ cơ chế bảo vệ (protected mode) của các bộ vi xử lý 286, 386.
Bộ nhớ mở rộng (extended memory) được bổ sung trực tiếp vào bộ nhớ conventional (conventional memory) và được sử dụng như một khối nhớ liên tục. Cơ chế bảo vệ còn cung cấp các hỗ trợ đặc biệt về quản lý bộ nhớ mà ở chế độ thực không có như việc áp buộc các truy xuất bộ nhớ phải tuân thủ một số quy luật nhằm trợ giúp đảm bảo tính toàn vẹn của mỗi chương trình, của mỗi dữ liệu của chương trình và của chính bản thân hệ thống.
Các ứng dụng Windows trong chế độ này có thể truy xuất đến một vùng nào đó trên đĩa cứng và sử dụng nó như một phần của bộ nhớ. Để truy xuất đúng phần địa chỉ ảo này Windows có bộ quản lý bộ nhớ ảo VMM (Virtual Memory Manager), nó làm việc cùng với phần cứng phân trang được thiết kế sẵn trong con 386. Trong chế độ này, không gian địa chỉ có thể lên gấp 4 lần kích thước bộ nhớ vật lý khả dụng.
Chế độ bảo vệ (protected mode): là trạng thái của bộ vi xử lý quy định một số quy luật khi bộ nhớ được đánh địa chỉ nhằm làm giảm những rủi ro mà chương trình có thể ghi đè phần bộ nhớ không thuộc về nó. Trong chế độ bảo vệ một chương trình sẽ dùng một segment gồm 2 phần: segment identifier và offset để đánh địa chỉ bộ nhớ. Sự chuyển đổi từ địa chỉ luận lý sang địa chỉ vật lý như sau: bộ vi xử lý sẽ tham khảo các bảng miêu tả (descriptor table) (bảng chứa dữ liệu đặc biệt) được hệ điều hành khởi tạo và quản lý. Có 2 loại: bảng miêu tả toàn cục GDT (Global Descriptor Tables) và bảng miêu tả cục bộ LDT (Local Descriptor Table). Một bảng miêu tả gồm một mảng các mẫu tin về thông tin của segment được gọi là bộ miêu tả phân đoạn (segment selector). Phần địa chỉ bộ nhớ mà chúng ta gọi là segment identifier được tham khảo đến như là một bộ chọn phân đoạn (segment selector). Một segment selector là một chỉ số vào mảng các bộ miêu tả tạo nên bảng miêu tả, nó xác định segment descriptor cung cấp chi tiết cần thiết để truy xuất phân đoạn dữ liệu.
Khi chương trình tham chiếu đến một vị trí nhớ, CPU sẽ nạp segment descriptor vào các thanh ghi đặc biệt để xác định địa chỉ v

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Nghiên cứu các yếu tố tác động đến gia tăng giá trị đất đô thị tại Việt Nam Luận văn Kinh tế 0
D Các nhân tố ảnh hưởng đến giá bán căn hộ chung cư cao cấp - Nghiên cứu trên địa bàn Hà Nội Luận văn Kinh tế 0
D Nghiên cứu sự hài lòng của người dân về nhà ở tái định cư tại các dự án xây dựng lại nhà chung cư cũ Luận văn Kinh tế 0
D nghiên cứu xây dựng quy trình phân tích các hoạt chất chính trong cây hương thảo Nông Lâm Thủy sản 0
D nghiên cứu các phương pháp phân lớp dữ liệu và ứng dụng trong bài toán dự báo thuê bao rời mạng viễn thông Công nghệ thông tin 0
D Nâng cao hiệu quả áp dụng các phương pháp địa chất và địa vật lý hiện đại nghiên cứu địa chất môi trường vùng đồng bằng sông hồng và cửu long Khoa học Tự nhiên 0
D Các loại sai số trong nghiên cứu dịch tễ học Y dược 0
D Nghiên cứu tính đa dạng thực vật trong các hệ sinh thái rừng ở vườn quốc gia Xuân Sơn, tỉnh Phú Thọ Nông Lâm Thủy sản 0
D Nghiên cứu các nhân tố ảnh hưởng tới tính thanh khoản của cổ phiếu niêm yết trên thị trường chứng khoán Việt Nam Luận văn Kinh tế 0
D Nghiên cứu những giải pháp nhằm tối ưu hóa chi phí logistics cho các doanh nghiệp cung cấp dịch vụ logistics Luận văn Kinh tế 0

Các chủ đề có liên quan khác

Top