Đề tài tốt nghiệp: Nghiên cứu các phương pháp nhận dạng từ dưới Cursor Mouse trên Destop Windows. Viết chương trình nhận dạng từ này pps

86 686 0
Đề tài tốt nghiệp: Nghiên cứu các phương pháp nhận dạng từ dưới Cursor Mouse trên Destop Windows. Viết chương trình nhận dạng từ này pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo Cáo Luận Văn Tốt Nghiệp Trang 1 Đề tài tốt nghiệp Nghiên cứu các phương pháp nhận dạng từ dưới Cursor Mouse trên Destop Windows. Viết chương trình nhận dạng từ này SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 2 MỤC LỤC LỜI MỞ ĐẦU 3 CHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH WINDOWS 4 I. Khái qt 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 qt 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 SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 3 Lời Mở Đầu gày nay, hầu như mọi cơng việc hàng ngày liên quan đến cuộc sống của chúng ta đều diễn ra trên máy tính. Từ việc soạn thảo văn bản, gởi nhận thơng tin đến việc tra cứu, truy cập thơng tin từ hệ thống mạng máy tính tồn cầu Internet đối với người sử dụng là cơng việc thường ngày và rất phổ biến. Từ đó, sẽ phát sinh vấn đề là người sử dụng sẽ cần tìm hiểu ý nghĩa của một từ, một câu hoặc cần phải dịch một đoạn văn bản, một file dữ liệu nào đó ra tiếng Việt và ngược lại. Đây là một nhu cầu cần thiết và hầu như xảy ra thường xun đối với nhiều người, do đó nhận dạng từ đặc biệt là nhận dạng từ trên màn hình trong mơi trường Windows là việc làm cần thiết và có ý nghĩa thực tế. Kết quả của việc nhận dạng từ sẽ được dùng để xây dựng nên các ứng dụng khác chẳng hạn như các từ điển được tra cứu theo kiểu tương tác trực tiếp sẽ rất thuận tiện cho người sử dụng bởi vì theo cách này thì cho dù đang ở trong bất kỳ ứng dụng nào khi cần tra cứu thì thao tác trực tiếp ngay trên ứng dụng đang dùng tức là chỉ cần click chuột vào đó chứ khơng cần phải mở từ điển rồi tra cứu từ đó theo kiểu cổ điển. Vì thế, trong thời gian làm Luận Án Tốt nghiệp được sự hướng dẫn của thầy Lê Tấn Hùng nhóm sinh viên chúng tơi thực hiện đề tài: “ Nhận dạng từ dưới cursor mouse trên deskop Windows. Viết chương trình nhận dạng từ này ”. Trong giai đoạn đầu của Luận Án Tốt Nghiệp chúng tơi đã nghiên cứu được một số vấn đề quan trọng và căn bản có ý nghĩa trong việc thực hiện u cầu đã đặt ra của đề tài. Đề tài này chỉ tập trung nhận dạng từ ở dạng text trên desktop của mơi trường Windows rồi xuất kết quả ra. Trong thời gian làm Luận Án Tốt Nghiệp nhóm sinh viên chúng tơi đã tiến hành nghiên cứu cơ chế hoạt động và quản lý của hệ điều hành Windows. Nghiên cứu về phương thức lập trình trong mơi trường Windows và các phương tiện mà Windows hỗ trợ khi lập trình. Tham khảo và nghiên cứu kỹ thuật override các hàm giao tiếp của Windows ở chế độ 16 bit và 32 bit. Nghiên cứu cách xử lý các thơng điệp trong Windows và tìm hiểu về cách kết xuất văn bản, về chế độ ánh xạ, vấn đề tọa độ . . . và cách xử lý văn bản. Trên cơ sở đó bước đầu chúng tơi đã xây dựng xong một ứng dụng có khả năng nhận dạng được từ trên nền Windows 16 bit được viết bằng ngơn ngữ Visual C++ version 1.5 và hướng phát triển trong thời gian tới là hiện thực nó trên nền Win32. Báo cáo của chúng tơi sẽ lần lượt điểm qua những nội dung mà chúng tơi đã nghiên cứu và tìm hiểu được trong thời gian qua. Sau đó là phần giới thiệu chi tiết về chương trình từ khâu phân tích-thiết kế cho đến phần chương trình nguồn và cuối cùng sẽ là nêu những vấn đề còn tồn tại và hướng phát triển trong tương lai. SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 4 Chương 1: TÌM HIỂU VỀ TÌM HIỂU VỀ LẬP TRÌNH WINDOWS LẬP TRÌNH WINDOWS SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 5 I - KHÁI QT VỀ LẬP TRÌNH TRONG WINDOWS: 1 - Khái qt về lập trình trong Windows: Mơi trường lập trình Windows về cơ bản là dựa trên bộ hàm API (Application Programmer Interface), nó có chức năng như các ngắt trong bảng vector ngắt của DOS, nhưng nó thân thiện hơn ở chỗ cách gọi hàm API giống hệt cách gọi hàm của ngơn ngữ cấp cao, mỗi hàm có một tên gọi hẳn hoi, và tên gọi thường được đặt rất phù hợp với cơng dụng của hàm (mặc dù có hơi dài dòng) từ đó tạo khả năng gợi nhớ cao. Với Windows, người lập trình khơng còn phải lập trình theo kiểu assembly nữa mà lập trình theo kiểu ngơn ngữ cấp cao, mọi hoạt động trong máy ở mức thấp từ hàm API trở xuống thuộc phạm vi của Windows, và Windows khơng khuyến khích việc các ứng dụng can thiệp vào lĩnh vực này. Bù lại, bằng các hàm API, nó hỗ trợ rất hiệu quả cho người lập trình, giúp khai thác khả năng của thiết bị triệt để, dễ dàng và tiện lợi hơn bao giờ hết. Có thể nói Windows đã mở ra cho người lập trình khơng gian rộng lớn để phát triển ứng dụng, và hạn chế khơng gian phát triển hệ thống. Điều này dẫn đến hệ quả là các ứng dụng được tạo ra hết sức dễ dàng, và quan trọng là hệ thống chạy ổn định hơn, khơng bị treo do lỗi của ứng dụng, khơng thể xâm nhập, nhưng sẽ rất khó khăn nếu người lập trình muốn trực tiếp điều khiển hoạt động trong máy và phát triển về lập trình hệ thống. - Tìm hiểu hàm Windows API: Windows là một hệ điều hành đa nhiệm (multitasking) mà qua đó các ứng dụng ở trong mơi trường Windows sẽ giao tiếp với user thơng qua một hay nhiều giao diện. Để truy cập các giao diện này thì các ứng dụng được xây dựng trên mơi trường Windows sẽ sử dụng tập các hàm được gọi là giao diện chương trình ứng dụng API (Application Program Interface). Chương trình của người sử dụng có thể gọi tới các hàm API để truy cập tới mọi tài ngun của Windows. GDI là một bộ phận của API, giao diện thiết bị đồ họa GDI (Graphic Device Interface) có nhiệm vụ duy trì sự độc lập của Windows đối với các thiết bị đồ họa hay còn gọi là khả năng độc lập thiết bị (device independent) tức là cho phép Windows làm việc với nhiều kiểu thiết bị đồ họa khác nhau. 2 - Thư viện liên kết động DLL (Dynamic Link Library): Thư viện liên kết động là các tập tin được Windows lưu dưới dạng nhị phân chứa các hàm mà mọi ứng dụng trên Windows đều có thể sử dụng. Nét đặc trưng của DLL là nó có thể được sử dụng bởi nhiều ứng dụng tại cùng một thời điểm hay nói cách khác thư viện liên kết động có thể cùng một lúc được gọi bởi nhiều chương trình. DLL là một dữ liệu chia sẻ được (shared data). Có 3 loại DLL khác nhau: SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 6 - Thư viện liên kết động API: thuộc hệ thống Windows, khi cài hệ điều hành thì nó đã có sẵn. Chúng được nạp khi Windows khởi động. - Thư viện liên kết động third party: do các cơng ty khác tạo ra trên mơi trường Windows, hỗ trợ thêm cơng tác lập trình trong Windows. - Thư viện liên kết động do chúng ta tạo ra. Windows sử dụng cấu trúc thư viện liên kết động DLL (Dynamic Link Library) nhằm mục đích khơng sao chép một khối lượng lớn các mã vào trong chương trình như ở các thư viện thơng thường. Nhờ cấu trúc động của DLL nên mọi chương trình đều có thể truy cập thư viện trong thời gian thực thi. Các hàm API được Windows giữ dưới dạng hỗn hợp trong một số DLL. Trong q trình dịch khi gặp lệnh gọi hàm API từ chương trình ứng dụng thì chương trình dịch khơng thêm mã này vào module thực hiện mà chỉ thêm các lệnh liên kết (chứa tên của DLL bên trong có hàm cần nạp) và tên hàm đó. Khi thực thi chương trình thì hàm API thực sự mới được nạp vào bộ nhớ để thực hiện. Cùng với sự phát triển của Windows là sự phát triển của lập trình hướng đối tượng, và để hỗ trợ cho việc lập trình hướng đối tượng, Microsoft đã cung cấp cho người lập trình một bộ thư viện các lớp cơ bản để phát triển các ứng dụng hướng đối tượng gọi là MFC (Microsoft Foundation Classes), nội dung của nó bao gồm thơng tin về các lớp cơ bản được chuẩn hóa như lớp application; document; view; OLE; cửa sổ; nút bấm; text; v.v…, trong các lớp này mọi thứ liên quan đến nó (bao gồm dữ liệu và các chương trình xử lý của nó) đều được làm hồn chỉnh, người lập trình chỉ việc lấy ra sử dụng, hoặc có thể thêm bớt một ít tính năng đặc trưng cho đối tượng của mình. Mục tiêu chính của MFC là hệ thống hóa các hàm API, cung cấp một thể thức gọi gọn các hàm API, cung cấp một “khung làm việc” (framework) cực mạnh để người lập trình khơng cần phải quan tâm đến những đoạn chương trình thuộc về “thủ tục” mà chỉ cần quan tâm đến phần cốt lõi để đạt được mục đích. II - THƠNG ĐIỆP VÀ XỬ LÝ THƠNG ĐIỆP: 1 - Khái niệm: Lập trình trên mơi trường Windows khác với lập trình ở các mơi trường khác ở điểm là lập trình trên Windows ln ln gắn liền với những thơng điệp. Mọi hoạt động xảy ra trên một chương trình Windows đều thơng qua các thơng điệp. Thơng điệp sẽ được hệ thống báo cho các ứng dụng biết các tác động từ bên ngồi vào hệ thống Windows. Một cửa sổ có thể gởi đi một thơng điệp cho một cửa sổ khác và các cửa sổ đáp ứng lại thơng điệp bằng cách gởi đi một thơng điệp khác cho một cửa sổ khác. SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 7 Trong Windows có 3 loại thơng điệp cơ bản: - Những thơng điệp tổng qt: có mã nhận diện mang tiền tố WM_ được coi là phần lớn trong ứng dụng và Windows đã cung cấp các hàm để giải quyết. - Những control notification: đây là những thơng điệp WM_COMMAND được chuyển từ cửa sổ con tới cửa sổ bố mẹ. - Những nút lệnh: là thơng điệp WM_COMMAND phát đi từ trình đơn, từ các nút điều khiển. Đây là loại thơng điệp u cầu ứng dụng phải thực hiện một cơng việc gì đó. 2 - Gởi đi các thơng điệp: Windows cho phép ứng dụng gởi đi những thơng điệp cho mình, cho các ứng dụng khác hoặc cho hệ thống. Có 3 hàm Windows API để gởi thơng điệp đi: a) Hàm SendMessage: Cú pháp: LRESULT SendMessage(hwnd, uMsg, wParam, lParam) HWND hwnd; // handle của cửa sổ nhận (đích) UINT uMsg; // thơng điệp để gởi WPARAM wParam; // thơng số thơng điệp đầu tiên LPARAM lParam; // thơng số thơng điệp thứ hai - Hàm SendMessage gởi thơng điệp tới một hay nhiều cửa sổ. Hàm gọi thủ tục cửa sổ cho cửa sổ và khơng trở về cho đến lúc thủ tục cửa sổ đã xử lý thơng điệp. - Giá trị trả về: cho biết kết quả xử lý thơng điệp và phụ thuộc vào thơng điệp được gởi. b) Hàm PostMessage: - Cú pháp: BOOL PostMessage(hwnd, uMsg, wParam, lParam) HWND hwnd; // handle của của sổ đích UINT uMsg; // thơng điệp gởi WPARAM wParam; // thơng số thơng điệp đầu tiên LPARAM lParam; // thơng số thơng điệp thứ hai - Hàm PostMessage gởi (đặt) một thơng điệp vào trong hàng thơng điệp cửa sổ và rồi trở về mà khơng đợi cửa sổ tương ứng xử lý thơng điệp. Những thơng điệp trong một hàng thơng điệp được lấy bằng cách gọi hàm SetMessage hay PeekMessage. SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 8 - Giá trị trả về: trả về khác 0 nếu thành cơng, ngược lại 0. c) Hàm SendDlgItemMessage: - Cú pháp: LRESULT SendDlgItemMessage(hwndDlg,idDlgItem,uMsg,wParam,lParam) HWND hwndDlg; // handle của hộp hội thoại int idDlgItem; // mã nhận diện ơ điều khiển sẽ nhận thơng điệp UINT uMsg; // thơng điệp gởi đi WPARAM wParam; // thơng số thơng điệp đầu tiên LPARAM lParam; // thơng số thơng điệp thứ hai - Hàm SendDlgItemMessage gởi một thơng điệp tới một điều khiển trong hộp hội thoại. - Giá trị trả về: cho biết kết quả xử lý thơng điệp và phụ thuộc vào thơng điệp được gởi. 3 - Vòng lặp thơng điệp: Một thread hoặc một process đẩy một thơng điệp ra khỏi hàng đợi bằng cách dùng vòng lặp thơng điệp. Vòng loop chính của một ứng dụng đặt tại cuối hàm WinMain() của ứng dụng đó. Vòng lặp thơng điệp có dạng như sau: while GetMessage(&msg,NULL,0,0) { TranslateMessage(&msg); DispatchMessage(&msg); } Sau đây là Sơ đồ dòng thơng điệp: SVTH : Lương Cao Hoài Tâm Lớp TH40 Thread1 Message Queue Thread2 Message Queue Thread3 Message Queue System Dispatcher Hardware Event Occur System Message Queue GetMessage() TranslateMessage() Dispatch Message() GetMessage() TranslateMessage() Dispatch Message() GetMessage() TranslateMessage() Dispatch Message() WndProc() WndProc() WndProc() DefWndProc() DefWndProc() DefWndProc() Thread1 Hook Thread2 Hook Thread3 Hook System Dispatcher Báo Cáo Luận Văn Tốt Nghiệp Trang 9 Nó mơ tả đơn giản hóa q trình xử lý thơng điệp. Thơng điệp có thể bắt nguồn từ nhiều cách khác nhau, sơ đồ sau đây sẽ giải thích chi tiết hơn về vòng lặp thơng điệp và chỉ ra cách thơng điệp được đặt vào hàng đợi như thế nào: Thơng điệp khơng chỉ phát xuất từ sự kiện phần cứng, cũng có thể có thơng điệp của chương trình phát xuất từ một chương trình đang chạy. Các threads có thể gởi dữ liệu trở về sau và về trước bằng cách gởi thơng điệp. Thơng điệp có thể gởi vào hàng đợi bằng hàm PostMessage() , hoặc chúng có thể được gởi trực tiếp cho vòng lặp thơng điệp để xử lý ngay lập tức bằng hàm SendMessage(). 4 - Xử lý thơng điệp: Việc xử lý thơng điệp là yếu tố chính làm cho các ứng dụng Windows vận hành được. Hệ thống và các ứng dụng khác sinh ra các thơng điệp cho mọi sự kiện xuất hiện trong hệ thống thơng điệp của Windows sẽ cho phép Windows chạy đa nhiệm trong một thời điểm. Windows 95 và Windows NT mở rộng khả năng của version Windows trước bằng việc cấp phát cho mỗi dòng xử lý (thread) hay mỗi tiến trình (proccess) một hàng đợi thơng điệp riêng. Trong version Windows cũ thì tất cả ứng dụng đều dùng chung một hàng đợi thơng điệp, vì thế để các ứng dụng SVTH : Lương Cao Hoài Tâm Lớp TH40 Hardware Events Message Sent From Other Threads System Dispatcher System Message Queue Thread Message Queue WndProc() Message Loop PostMessage() TranslateMessage() SentMessage() SentMessage() (To Another Thread) Other threads PostMessage() Other threads PostMessage() Báo Cáo Luận Văn Tốt Nghiệp Trang 10 khác xử lý thơng điệp, ứng dụng phải trả quyền điều khiển về cho Windows mỗi khi nó có thể. Với Windows 95 và Windows NT, điều này khơng còn nữa. Windows sinh ra thơng điệp cho mọi sự kiện phần cứng, ví dụ như người dùng nhấn một phím hoặc di chuyển chuột. Nó gởi thơng điệp đến hàng đợi thơng điệp của thread thích hợp, nếu thơng điệp được dành cho nhiều thread thì nó cũng được đưa vào các hàng đợi của các thread đó. Một thơng điệp trên thực tế là một cấu trúc dữ liệu như sau: typedef struct tagMSG { HWND hwd; // handle cửa sổ UINT message; //số chỉ định loại message WPARAM wParam; //được chuyển cho WndProc() LPARAM wParam; //được chuyển cho WndProc() DWORD time; //số mili giây từ lúc bắt đầu POINT pt; //cấu trúc điểm POINT } III - GIAO DIỆN THIẾT BỊ ĐỒ HỌA GDI (GRAPHIC DEVICE INTERFACE): 1 - Khái niệm: Windows là một hệ điều hành đa nhiệm (multitasking) trong đó các ứng dụng giao tiếp với user thơng qua một hay nhiều giao diện. Để truy xuất các giao diện thì chương trình ứng dụng phải sử dụng các hàm Giao diện chương trình ứng dụng. API là tập các lệnh mà một ứng dụng sử dụng để u cầu và tiến hành các dịch vụ cấp thấp được thi hành bởi Windows. Giao diện thiết bị đồ họa GDI (Graphic Device Interface) là một phần của API có nhiệm vụ duy trì sự độc lập của Windows đối với các thiết bị đồ họa (cho phép Windows làm việc với nhiều thiết bị đồ họa khác nhau). Windows GDI là một thư viện bao gồm một số hàm giúp kết xuất đồ họa (graphic output) lên màn hình, máy in…GDI sẽ tạo ra: điểm, đường kẻ, hình dạng (shape: chữ nhật, tròn…), chữ văn bản. 2 - Device Context: Ngữ cảnh thiết bị DC (Device Context) là một phần quan trọng của GDI Windows. Một DC là một cấu trúc dữ liệu dài khoảng 800 bytes được Windows duy trì có nhiệm vụ lo lưu giữ những thơng tin cần thiết mà ứng dụng sẽ cần đến khi phải hiển thị kết xuất lên một thiết bị vật lý. GDI khơng bao giờ cho phép chương SVTH : Lương Cao Hoài Tâm Lớp TH40 [...]... Cáo Luận Văn Tốt Nghiệp Trang 11 trình làm việc trực tiếp với một DC mà GDI phân phối cho chương trình một handle để nhận dạng một DC cụ thể Tất cả các hàm API; GDI đều nhận thơng số đầu tiên là một handle – hdc DC là một cơng cụ chứa các thuộc tính vẽ, DC cho phép kết nối logic một chương trình về một thiết bị cụ thể nào đó Ngồi ra do Windows là một hệ điều hành đa nhiệm nên các chương trình khơng... q trình thực thi hàm API bắt đầu (theo cách 1) hoặc 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. .. dùng như là phương tiện nâng cao tính 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ý... giải phóng DLL sau khi tất cả các q trình nối hồn tồn với DLL đã kết thúc hay gọi FreeLibrary và tất cả các q trình đã gọi thủ tục hook lại tiếp tục q trình xử lý bên ngồi DLL Một phương pháp lựa chọn cho việc đặt thủ tục tồn cục là cung cấp một hàm cài đặt trong DLL, cùng với thủ tục hook Với phương pháp này, ứng dụng cài đặt khơng cần handle chỉ tới module DLL Bằng cách nối với DLL, ứng dụng gia... ra các kết xuất và nhận các dữ liệu từ người dùng Windows quản lý tất cả cửa sổ hiện có trong hệ thống bằng cách gán cho mỗi cửa sổ một handle (trên thực tế nó là một số ngun), ta chỉ cần có được handle cửa sổ thì có thể thao tác mọi thứ trên cửa sổ đó Một cửa sổ chia sẻ màn hình với các cửa sổ khác, kể cả các cửa sổ của ứng dụng khác Chỉ có một cửa sổ trong một thời điểm có thể nhận dữ liệu nhập từ. .. lúc ngắt Còn lại tất cả các event khác đều được đưa vào hardware event queue 3 - Hardware event queue: Các mouse event được đưa vào hardware event queue chờ giao cho message loop của chương trình giải quyết Queu này là một vùng đệm có thể chứa tối đa 120 event Những event trong queue chưa thuộc một chương trình cụ thể nào cho tới khi nó được tiếp nhận bởi hàm GetMessage() Điều này đảm bảo cho hệ thống... đị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 hoặc 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ẽ... khơng cần phải 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 SVTH : Lương Cao Hoài Tâm Lớp TH40 Báo Cáo Luận Văn Tốt Nghiệp Trang 34 này hồn tồn một cách tự động Như vậy, trong Windows thì kỹ... ra do Windows là một hệ điều hành đa nhiệm nên các chương trình khơng thể truy xuất trực tiếp các thiết bị vật lý để tránh xung đột Thay vào đó, chương trình Windows phải sử dụng kết nối logic do DC đại diện Nghĩa là tất cả các chương trình cách tiếp cận này để GDI có thể giải quyết tranh chấp khi 2 chương trình u cầu dùng cùng một thiết bị nên DC còn có vai trò làm permission slip DC lưu trữ thơng... thủ tục cửa sổ nhận diện vị trí cursor Đa số chương trình chuyển thơng điệp này cho DefWindowProc() lo tìm vị trí cursor và cung cấp một hit-test code như là trị trả về Khi DefWindowProc() trả về kết quả khác HTCLIENT, HTERROR, HTNOWHERE, HTTRANSPARENT thì cursor nằm trên vùng non-client thì Windows sẽ phát đi thơng điệp non-client Còn khi DefWindows trả về kết quả HTCLIENT thì cursor nằm trên vùng client . Báo Cáo Luận Văn Tốt Nghiệp Trang 1 Đề tài tốt nghiệp Nghiên cứu các phương pháp nhận dạng từ dưới Cursor Mouse trên Destop Windows. Viết chương trình nhận dạng từ này SVTH : Lương Cao Hoài. hiện đề tài: “ Nhận dạng từ dưới cursor mouse trên deskop Windows. Viết chương trình nhận dạng từ này ”. Trong giai đoạn đầu của Luận Án Tốt Nghiệp chúng tơi đã nghiên cứu được một số vấn đề quan. hiện u cầu đã đặt ra của đề tài. Đề tài này chỉ tập trung nhận dạng từ ở dạng text trên desktop của mơi trường Windows rồi xuất kết quả ra. Trong thời gian làm Luận Án Tốt Nghiệp nhóm sinh viên

Ngày đăng: 30/07/2014, 17:20

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • I - KHÁI QUÁT VỀ LẬP TRÌNH TRONG WINDOWS:

    • 1 - Khái quát về lập trình trong Windows:

    • 2 - Thư viện liên kết động DLL (Dynamic Link Library):

    • II - THÔNG ĐIỆP VÀ XỬ LÝ THÔNG ĐIỆP:

      • 1 - Khái niệm:

      • 2 - Gởi đi các thông điệp:

        • a) Hàm SendMessage:

        • b) Hàm PostMessage:

        • c) Hàm SendDlgItemMessage:

        • 3 - Vòng lặp thông điệp:

        • 4 - Xử lý thông điệp:

        • III - GIAO DIỆN THIẾT BỊ ĐỒ HỌA GDI (GRAPHIC DEVICE INTERFACE):

          • 1 - Khái niệm:

            • 2 - Device Context:

            • 3 - Chế dộ ánh xạ (mapping mode):

            • 4 - Hệ thống tọa độ windows:

              • a) Full screen coordinate system:

              • b) Client area coordinate system:

              • c) Whole window coordinate system:

              • d) Logical coordinate:

              • 5 - Viewport và window:

              • IV - CỬA SỔ TRONG WINDOWS:

                • 1 - Các loại cửa sổ:

                • 2 - Thủ tục cửa sổ (Window Procedures):

                • 3) Thông điệp cửa sổ:

                • 4 - Default window procedure:

Tài liệu cùng người dùng

Tài liệu liên quan