Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Điều Hành Window 32 Bit
- Pages
- 10
- Format
- Taille
- 255 KB
- Langue
- VI · Tiếng Việt
- Vues
- 216
- Commentaires
- 0
- Lượt tải
- 0
Génération de l'aperçu...
- Nom du document
- Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Điều Hành Window 32 Bit
- Table des matières
- Ce document n'a pas de table des matières claire.
- Pages
- 10 pages
- Téléversé par
- ThiNganHang
Un résumé détaillé est en cours de génération. Veuillez vérifier dans quelques minutes.
Description
Trích nội dung tài liệu
[Programming] Ứng dụng cơ chế Hook - Phần 1 Ứng dụng cơ chế Hook để xây dựng chương trình hỗ trợ gõ Tiếng Việt trên Hệ Điều Hành Windows 32 Bit - Phần 1 I.Sự kiện và thông điệp trên HĐH Windows I.1.Giới thiệu Ngày nay, Windows có lẽ không còn xa lạ với người sử dụng PC. Nhắc đến Windows, người ta thường nghĩ về nó như một Hệ Điều Hành (HĐH) dễ sử dụng, ở đó, tương tác giữa người dùng với các ứng dụng cũng như với các thành phần tiện ích của Windows thông qua giao diện đồ họa (GUI), bằng các thao tác trên keyboard, mouse vô cùng đơn giản. Một câu hỏi được đặt ra là : “Các ứng dụng làm thế nào để phân loại, lưu giữ cũng như đáp lại những tương tác đó cho người dùng ?”. Đối với Windows vấn đề này được giải quyết một cách trọn vẹn : HĐH đưa ra cơ chế thông điệp (message) cùng với tập hợp các cấu trúc dữ liệu và các hàm API hỗ trợ ứng dụng trong việc giao tiếp với người dùng. I.2.Hai loại hàng đợi thông điệp trên Windows Trước hết, ta cần phải biết làm thế nào HĐH Windows lưu trữ các thông điệp. Hai loại hàng đợi trong Windows phục vụ cho mục đích này : + Hàng đợi hệ thống (The System Queue) + Hàng đợi thông điệp của ứng dụng (Application Queue) Hàng đợi hệ thống (The System Queue) Windows có các trình điều khiển thiết bị (Drivers) chịu trách nhiệm cho các dịch vụ ngắt từ thiết bị phần cứng mouse và keyboard. Tại mỗi thời điểm ngắt phát sinh, các Driver này gọi một điểm vào (hàm) đặc biệt trong USER.EXE để chỉ ra rằng một sự kiện vừa xảy ra. Tất cả các sự kiện mouse, keyboard được lưu trong một hàng đợi được gọi là hàng đợi hệ thống (The System Queue). Đây là hàng đợi dùng chung cho toàn hệ thống , mọi tiến trình đang chạy đều chia xẻ hàng đợi này. Nhiệm vụ độc nhất của nó là ghi nhận lại những sự kiện phần cứng (mouse actions, keystrokes) khi chúng xảy ra. Hàng đợi thông điệp của ứng dụng (Application Queue) Khi một tiến trình được khởi tạo, một hàng đợi đại diện cho nó được tạo ra, hàng đợi này (đôi khi được gọi là hàng đợi tác vụ) được dùng để chứa những thông điệp sẽ được gởi cho các cửa sổ của ứng dụng. Những thông điệp này là những thông điệp được gởi một cách tường minh bằng một trong hai hàm sau : + PostMessage + PostAppMessage (Lưu ý : Hàm PostQuitMessage không gởi thông điệp vào hàng đợi ứng dụng Ứng dụng có thể dùng hai Primitive là GetMessage và PeekMessage doWindows cung cấp để khảo sát hàng đợi của mình. Hai hàm này cho phép ứng dụng “Lấy một message ra khỏi hàng đợi” để từ đó phân loại và có những “Trả lời” thích hợp với người dùng. I.3.Bàn thêm về GetMessage và PeekMessage Bên trong HĐH Windows, GetMessage và PeekMessage thi hành cùng mã lệnh. Điểm khác biệt chính giữa 2 hàm là trong trường hợp không có message nào được trả về cho ứng dụng. Trong trường hợp này, GetMessage đặt ứng dụng vào trạng thái “Sleep” trong khi PeekMessage trả về ứng dụng giá trị NULL. Ngay trước khi GetMessage và PeekMessage trả message về cho ứng dụng, hệ thống sẽ kiểm tra xem có sự tồn tại của hook WH_GETMESSAGE hay không. Nếu có một “Filter Function” (thực chất là 1 hàm) ứng với hook trên được cài đặt, hàm này sẽ được gọi. “Filter Function” không được gọi nếu PeekMessage không tìm thấy message và trả về NULL. PeekMessage với tùy chọn PM_NOREMOVE Theo mặc định, cả PeekMessage và GetMessage sẽ lấy message ra khỏi hàng đợi khi mỗi message được trả về cho ứng dụng. Tuy nhiên, có đôi lúc, ứng dụng có thể chỉ muốn vào hàng đợi để kiểm tra sự tồn tại của một messsage mà không muốn gỡ bỏ nó. Để làm được điều này, chương trình của ta sẽ gọi PeekMessage với tùy chọn PM_NOREMOVE, lúc này PeekMessage vẫn trả về message như thường lệ nhưng sẽ không lấy nó ra khỏi hàng đợi.(Chi tiết về GetMessage và PeekMessage có thể tham khảo tại Article “GetMessage and PeekMessage Internals” trong thư viện MSDN) II.Sự kiện bàn phím II.1.Mô hình chung Mỗi phím trên bàn phím được hệ thống gắn với một giá trị duy nhất gọi là mã quét (Scan Code), đây là một giá trị phụ thuộc thiết bị, tức là giá trị này sẽ lệ thuộc vào từng loại bàn phím cụ thể. Khi người dùng gõ một ph
Foire aux questions
Comment puis-je télécharger ce document ?
Le document « Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Điều Hành Window 32 Bit » coûte 10 000đ. Rechargez votre portefeuille via PayOS, puis cliquez sur Télécharger pour acheter et enregistrer le fichier original.
Combien de pages compte ce document ?
Le document contient 10 pages. Vous pouvez le prévisualiser en ligne avant de le télécharger.
Puis-je prévisualiser avant de télécharger ?
Oui. Vous pouvez prévisualiser ce document directement sur cette page avec le lecteur en ligne (les premières pages), puis décider de le télécharger ou non.
Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Điều Hành Window 32 Bit
Génération de l'aperçu...
Trích nội dung tài liệu
[Programming] Ứng dụng cơ chế Hook - Phần 1 Ứng dụng cơ chế Hook để xây dựng chương trình hỗ trợ gõ Tiếng Việt trên Hệ Điều Hành Windows 32 Bit - Phần 1 I.Sự kiện và thông điệp trên HĐH Windows I.1.Giới thiệu Ngày nay, Windows có lẽ không còn xa lạ với người sử dụng PC. Nhắc đến Windows, người ta thường nghĩ về nó như một Hệ Điều Hành (HĐH) dễ sử dụng, ở đó, tương tác giữa người dùng với các ứng dụng cũng như với các thành phần tiện ích của Windows thông qua giao diện đồ họa (GUI), bằng các thao tác trên keyboard, mouse vô cùng đơn giản. Một câu hỏi được đặt ra là : “Các ứng dụng làm thế nào để phân loại, lưu giữ cũng như đáp lại những tương tác đó cho người dùng ?”. Đối với Windows vấn đề này được giải quyết một cách trọn vẹn : HĐH đưa ra cơ chế thông điệp (message) cùng với tập hợp các cấu trúc dữ liệu và các hàm API hỗ trợ ứng dụng trong việc giao tiếp với người dùng. I.2.Hai loại hàng đợi thông điệp trên Windows Trước hết, ta cần phải biết làm thế nào HĐH Windows lưu trữ các thông điệp. Hai loại hàng đợi trong Windows phục vụ cho mục đích này : + Hàng đợi hệ thống (The System Queue) + Hàng đợi thông điệp của ứng dụng (Application Queue) Hàng đợi hệ thống (The System Queue) Windows có các trình điều khiển thiết bị (Drivers) chịu trách nhiệm cho các dịch vụ ngắt từ thiết bị phần cứng mouse và keyboard. Tại mỗi thời điểm ngắt phát sinh, các Driver này gọi một điểm vào (hàm) đặc biệt trong USER.EXE để chỉ ra rằng một sự kiện vừa xảy ra. Tất cả các sự kiện mouse, keyboard được lưu trong một hàng đợi được gọi là hàng đợi hệ thống (The System Queue). Đây là hàng đợi dùng chung cho toàn hệ thống , mọi tiến trình đang chạy đều chia xẻ hàng đợi này. Nhiệm vụ độc nhất của nó là ghi nhận lại những sự kiện phần cứng (mouse actions, keystrokes) khi chúng xảy ra. Hàng đợi thông điệp của ứng dụng (Application Queue) Khi một tiến trình được khởi tạo, một hàng đợi đại diện cho nó được tạo ra, hàng đợi này (đôi khi được gọi là hàng đợi tác vụ) được dùng để chứa những thông điệp sẽ được gởi cho các cửa sổ của ứng dụng. Những thông điệp này là những thông điệp được gởi một cách tường minh bằng một trong hai hàm sau : + PostMessage + PostAppMessage (Lưu ý : Hàm PostQuitMessage không gởi thông điệp vào hàng đợi ứng dụng Ứng dụng có thể dùng hai Primitive là GetMessage và PeekMessage doWindows cung cấp để khảo sát hàng đợi của mình. Hai hàm này cho phép ứng dụng “Lấy một message ra khỏi hàng đợi” để từ đó phân loại và có những “Trả lời” thích hợp với người dùng. I.3.Bàn thêm về GetMessage và PeekMessage Bên trong HĐH Windows, GetMessage và PeekMessage thi hành cùng mã lệnh. Điểm khác biệt chính giữa 2 hàm là trong trường hợp không có message nào được trả về cho ứng dụng. Trong trường hợp này, GetMessage đặt ứng dụng vào trạng thái “Sleep” trong khi PeekMessage trả về ứng dụng giá trị NULL. Ngay trước khi GetMessage và PeekMessage trả message về cho ứng dụng, hệ thống sẽ kiểm tra xem có sự tồn tại của hook WH_GETMESSAGE hay không. Nếu có một “Filter Function” (thực chất là 1 hàm) ứng với hook trên được cài đặt, hàm này sẽ được gọi. “Filter Function” không được gọi nếu PeekMessage không tìm thấy message và trả về NULL. PeekMessage với tùy chọn PM_NOREMOVE Theo mặc định, cả PeekMessage và GetMessage sẽ lấy message ra khỏi hàng đợi khi mỗi message được trả về cho ứng dụng. Tuy nhiên, có đôi lúc, ứng dụng có thể chỉ muốn vào hàng đợi để kiểm tra sự tồn tại của một messsage mà không muốn gỡ bỏ nó. Để làm được điều này, chương trình của ta sẽ gọi PeekMessage với tùy chọn PM_NOREMOVE, lúc này PeekMessage vẫn trả về message như thường lệ nhưng sẽ không lấy nó ra khỏi hàng đợi.(Chi tiết về GetMessage và PeekMessage có thể tham khảo tại Article “GetMessage and PeekMessage Internals” trong thư viện MSDN) II.Sự kiện bàn phím II.1.Mô hình chung Mỗi phím trên bàn phím được hệ thống gắn với một giá trị duy nhất gọi là mã quét (Scan Code), đây là một giá trị phụ thuộc thiết bị, tức là giá trị này sẽ lệ thuộc vào từng loại bàn phím cụ thể. Khi người dùng gõ một ph
- Nom du document
- Ứng Dụng Cơ Chế Hook Để Xây Dựng Chương Trình Hỗ Trợ Gõ Tiếng Việt Trên Hệ Điều Hành Window 32 Bit
- Table des matières
- Ce document n'a pas de table des matières claire.
- Pages
- 10 pages
- Téléversé par
- ThiNganHang
Un résumé détaillé est en cours de génération. Veuillez vérifier dans quelques minutes.
Commentaires (0)
Aucun commentaire pour le moment. Soyez le premier !
Bài tập Kinh tế học quốc tế (Có Đáp án)
15 bài tập Xác suất thống kê (có Lời giải)
Trắc nghiệm Đại số tuyến tính (Có Đáp án)
Bài tập Kinh tế nguồn nhân lực (KTNNL) 1 (Có lời giải)
So sánh nội dung trách nhiệm của người chuyên chở theo quy tắc Hague 1924, Hague Visby 1968 với quy tắc Hamburg 1978
Tiểu luận - Kinh tế phát triển - Phân tích nhận định "Việt Nam đã kiên định chọn hướng phát triển lấy con người làm trọng tâm ..."
Đề cương - Luật vận tải
600 Câu trắc nghiệm Tư tưởng Hồ Chí Minh
Tài liệu ôn tập Nguyên lý kế toán
Bài tập Xác suất thống kê đại học - có lời giải

Commentaires (0)
Aucun commentaire pour le moment. Soyez le premier !