1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các phương pháp nhận dạng từ dưới Cursor mouse trên destop windows

26 580 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 155 KB

Nội dung

Tài liệu tham khảo công nghệ thông tin Nghiên cứu các phương pháp nhận dạng từ dưới Cursor mouse trên destop windows

Trang 1

BÁO CÁO LUẬN VĂN TỐT NGHIỆP

 Tên Đề 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 Viết Chương Trình Nhận Dạng Từ Này.

 Giáo viên hướng dẫn :

Lê Tấn Hùng

 Sinh Viên Thực Hiện :

Lương Cao Hoài Tâm

Trang 2

NỘI DUNG BÁO CÁO GỒM

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

WINDOWS CHƯƠNG II : TÌM HIỂU VỀ HOOKS

CHƯƠNG III : KỸ THUẬT OVERRIDE HÀM

API

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

WINDOWS CHƯƠNG V : PHÂN TÍCH VÀ THIẾT KẾ

CHƯƠNG TRÌNH

Trang 3

CHƯƠNG I : TÌM HIỂU VỀ

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

Trang 4

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

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

Trang 5

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

Thư viện liên kết động DLL

Có 3 loại DLL khác nhau:

- 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

Trang 6

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

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

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 luôn luôn 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 ngoà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.

Trang 7

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

 Trong Windows có 3 loại thông điệp cơ bản:

- Những thông điệp tổng quát: 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 yêu cầu ứng dụng phải thực hiện một công việc gì đó

Trang 8

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

Trong Windows có 3 loại thông điệp cơ bản:

- Những thông điệp tổng quát: 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 yêu cầu ứng dụng phải thực hiện một công việc gì đó.

Trang 9

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

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 b) Hàm PostMessage c) Hàm SendDlgItemMessage

Trang 10

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

I GIAO DIỆN THIẾT BỊ ĐỒ HỌA GDI

(GRAPHIC DEVICE INTERFACE)

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.

Trang 11

CHƯƠNG I : TÌM HIỂU VỀ

LẬP TRÌNH WINDOWS

Windows sử dụng các hệ thống tọa độ khác nhau tùy theo hoàn cảnh như:

− Hệ toạ độ thiết bị (Device coordinate system)

− Hệ toạ độ toàn màn hình (Full screen coordinate system)

− Hệ toạ độ vùng client (Client area coordinate system)

− Hệ toạ độ toàn cửa sổ (Whole window coordinate system)

− Hệ toạ độ logic (Logical coordinate system)

Trong phạm vi ứng dụng của đề tài chúng tôi không quan tâm đến hệ toạ độ thiết bị

Trang 12

CHƯƠNG II : TÌM HIỂU VỀ

HOOKS

Hook là một cơ chế cực mạnh cho phép ta cài đặt một thủ tục để điều khiển hoặc chận hứng các thông điệp trước khi các thông điệp này tới được nơi tiếp nhận.

Hay nói một cách khác hook là một điểm trong kỹ thuật message-handling hệ thống, nơi mà một ứng dụng có thể đặt một thủ tục để quản lý sự lưu thông của các thông điệp trong hệ thống và xử lý một kiểu thông báo nào đó trước khi chúng tới được thủ tục cửa sổ đích.

Trang 13

CHÖÔNG II : TÌM HIEÅU VEÀ

Trang 14

CHƯƠNG III : KỸ THUẬT

OVERRIDE HÀM API

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 hoặc trong chương trình Hoặc 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

Trang 15

CHƯƠNG III : KỸ THUẬT

OVERRIDE HÀM API

Đố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:

Trang 16

CHƯƠNG III : KỸ THUẬT

OVERRIDE HÀM API

- 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ì hoặc một công việc theo yêu cầu của ta (back- end processing).

Trang 17

CHƯƠNG III : KỸ THUẬT

OVERRIDE HÀM API

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) hoặc là ngay sau khi đã kết thúc việc thực thi hàm API (theo cách 2).

Trang 18

CHƯƠNG IV : KẾT XUẤT VĂN

BẢN TRONG WINDOWS

Kết xuất văn bản theo GDI hoàn toàn khác với kết xuất trên môi trường lập trình cổ điển DOS, vì GDI coi văn bản như là một loại đối tượng đồ họa Cách tiếp cận để kết xuất văn bản của GDI có thể được gọi là kết xuất thiên về pixel (pixel oriented output), GDI sử dụng khung lưới pixel để cho ta xuất văn bản và ta có thể xuất văn bản ở bất kỳ vị trí nào trên cửa sổ Và

do coi văn bản như là một đối tượng đồ họa nên

ta có thể dễ dàng trộn văn bản với các đối tượng đồ họa khác.

Trang 19

CHƯƠNG IV : KẾT XUẤT VĂN

BẢN TRONG WINDOWS

Nhưng khác với các đối tượng đồ họa khác ta phải dùng phông chữ (font) để xuất văn bản Font là một đối tượng của GDI dùng để định nghĩa những ký tự để xuất ra trong một chương trình Windows Font thường là một căn cứ dữ liệu họa tiết mô tả hình dáng và kích thước của mỗi chữ cái, số và dấu Mỗi thiết bị GDI đều có thể hỗ trợ được một hoặc nhiều font.

Trang 20

CHƯƠNG V : PHÂN TÍCH VÀ

THIẾT KẾ CHƯƠNG TRÌNH

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.

Trang 21

CHƯƠNG V : PHÂN TÍCH VÀ

THIẾT KẾ CHƯƠNG TRÌNH

- Có 2 dạng thể hiện văn bản trên màn hình Windows, đó là:

* Thể hiện dưới dạng ảnh, dùng hàm kết xuất và xử lý ảnh

* Thể hiện dưới dạng chuỗi văn bản, dùng hàm kết xuất văn bản

Trang 22

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

Đối với dạng thể hiện ảnh, văn bản chỉ là tập các điểm ảnh của bức ảnh, chẳng có ý nghĩa gì khác đối với Windows, nên nếu muốn trích văn bản

ra chỉ có một cách là xử lý ảnh, điều này thực sự là một vấn đề hay và có nhiều ứng dụng thực tiễn: như nhận dạng một trang giấy được scan vào máy để tạo ra file text tương ứng thay cho việc đánh máy lại trang giấy đó Tuy nhiên nó là vấn đề hết sức phức tạp có sai số nhất định, và tùy thuộc vào font chữ mà văn bản thể hiện, trong khi đó có một cách khác để lấy đượïc chính xác các dòng text trên màn hình

Trang 23

CHƯƠNG V : PHÂN TÍCH VÀ

THIẾT KẾ CHƯƠNG TRÌNH

Đối với dạng thể hiện văn bản bằng các hàm kết xuất văn bản : Ứng dụng sẽ gởi cho Windows chuỗi văn bản cần thể hiện và các thông số cần thiết, và Windows dùng các hàm kết xuất văn bản để vẽ chuỗi văn bản đó ra màn hình Từ cách kết xuất đó đã nảy sinh một ý tưởng về việc nhận dạng các dòng text trên màn hình: là nếu ta có thể khống chế các hàm kết xuất văn bản, lấy về các thông tin của các hàm này, thì vấn đề có thể thực hiện được mà không cần phải xử lý ảnh.

Trang 24

CHƯƠNG V : PHÂN TÍCH VÀ

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:

- Tổ chức làm 2 projects:

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

Trang 25

KẾT 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.

Trang 26

KẾT QUẢ VÀ HƯỚNG

PHÁT TRIỂN

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

Ngày đăng: 23/11/2012, 09:34

HÌNH ẢNH LIÊN QUAN

− Hệ toạ độ toàn màn hình (Full screen coordinate system) - Nghiên cứu các phương pháp nhận dạng từ dưới Cursor mouse trên destop windows
to ạ độ toàn màn hình (Full screen coordinate system) (Trang 11)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w