Mục đích yêu cầu của đề tài là: "Nhận dạng từ dưới cursor mouse trên desktop window". Có nghĩa là tại một vị trí bất kỳ nào đó của cursor mouse trên màn hình Windows nếu có một tác động chuột quy định trước (chẳng hạn như click nút phải của chuột) thì phải lấy được từ ở ngay dưới vị trí cursor (nếu có), hoặc xuất ra thông báo cho biết không có từ nào nằm ngay dưới vị trí cursor đang đứng.
THIẾT KẾ CHƯƠNG TRÌNH
Từ những phân tích trên chúng tôi thiết kế chương trình như sau:
GETTEXT.MAK: Là chương trình chính, tạo khung giao diện và xử lý menu. Khi biên dịch sẽ là GETTEXT.EXE
GTDLL.MAK : Chứa các hàm và biến nhớ thực hiện việc cài đặt / gỡ bỏ bẫy sự kiện chuột; cài đặt / gỡ bỏ override; hàm override; hàm trích từ... Nói chung là tất cả phần xử lý còn lại. Khi biên dịch sẽ là GTDLL.DLL
-
Các hàm trong chương trình bao gồm:
+ GETTEXT.WinMain : Chương trình chính
+ GETTEXT.MenuWndProc: Hàm xử lý thông điệp của chương trình chính.
+ GTDLL.InstallMouseFilter : Hàm cài đặt / gỡ bỏ mouse-hook để bẫy và xử lý sự kiện chuột.
+ GTDLL.MouseFunc : Hàm xử lý mouse-hook, thay cho MouseProc
+ GTDLL.InstallOverrideAPI : Hàm cài đặt override hàm TextOut; ExtTextout
+ GTDLL.RemoveOverrideAPI : Hàm gỡ bỏ override 2 hàm xuất text
+ GTDLL.TextOutEx : Hàm override của TextOut
+ GTDLL.ExtTextOutEx : Hàm override của ExtTextOut
+ GTDLL.GetWordUnderPoint : Hàm phân tích và trích từ ra khỏi dòng văn bản
-
Các biến toàn cục chủ yếu bao gồm:
+ GTDLL.hwndMain : Handle cửa sổ chính của application, dùng để in kết quả vào cửa sổ chính.
+ GTDLL.hMod : Handle toàn cục của instance DLL
+ GTDLL.mousePos : Vị trí chuột cần lấy text.
+ GTDLL.searched : Chiều dài text tìm thấy
+ GTDLL.mWordUnderPoint : Kết quả-từ lấy được
+ GTDLL.MouseHookHandle : Hook handles
KẾ QUẢ VÀ HƯỚNG PHÁT TRIỂN
Chương trình GETTEXT đã bước đầu đáp ứng được yêu cầu của đề tài đặt ra: Nhận dạng được các từ hiển thị trên màn hình.
Tuy nhiên, do kỹ thuật override chỉ mới thực hiện được trong môi trường Windows 16 bits, nên chương trình này chỉ chạy được trên môi trường Windows 16bits. Trong môi trường Windows 9x, là môi trường lai tạp giữa 16bits và 32bits, nên chương trình chỉ nhận dạng được khi dòng văn bản được xuất bởi các hàm kết xuất văn bản của môi trường 16bits (như TextOut, ExtTextOut), còn đối với văn bản được kết xuất bởi các hàm của môi trường 32bits (như TextOutA, ExtTextOutA - được dùng để kết xuất văn bản trong các phầm mềm 32bits như Microsoft Office 97) thì chương trình không thể nhận dạng được. Dù vậy điều mà đề tài đã đạt được là đưa ra được một giải thuật khung sườn mang tính khả thi, có thể phát triển hoàn chỉnh trong tương lai.
Download đồ án nhận dạng kí tự dưới Cursor Mouse trên Desktop Windows code C++ miễn phí bao gồm cả Báo cáo, đồ án rất hay để bạn tham khảo. Download ngay!
THÔNG TIN TÁC GIẢ
Lương Cao Hoài Tâm
Nguồn: Sharecode.vn