Đồ án Nghiên cứu phương pháp ghi nhận các hoạt động của Microsoft Word - Nguyễn Trịnh Đông
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nghiên cứu phương pháp ghi nhận các hoạt động của Microsoft Word - Nguyễn Trịnh Đông", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_nghien_cuu_phuong_phap_ghi_nhan_cac_hoat_dong_cua_micr.pdf
Nội dung text: Đồ án Nghiên cứu phương pháp ghi nhận các hoạt động của Microsoft Word - Nguyễn Trịnh Đông
- TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG KHOA CÔNG NGHỆ THÔNG TIN ISO BÁO CÁO ĐỀ TÀI9001:2008 NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU PHƢƠNG PHÁP GHI NHẬN CÁC HOẠT ĐỘNG CỦA MICROSOFT WORD Nhóm tác giả: - Nguyễn Trịnh Đông - Đỗ Văn Chiểu HẢI PHÒNG 2011
- MỤC LỤC MỤC LỤC 2 DANH SÁCH CÁC HÌNH 3 DANH SÁCH CÁC BẢNG 4 I. GIỚI THIỆU 5 II. CƠ SỞ LÝ LUẬN THỰC HIỆN ĐỀ TÀI 5 1. DẠY VÀ HỌC 6 2. LÝ THUYẾT MÔ PHỎNG 7 a. Mô hình: 7 b. Mô hình hóa: 7 c. Mô phỏng: 7 d. Lợi ích của mô phỏng: 8 III. GIẢI PHÁP CÔNG NGHỆ 8 1. Giải pháp mô phỏng (Simulation) 8 a. Ghi kịch bản 8 b.Thực hiện kịch bản 9 2. Đánh giá bài học thông qua tƣơng tác với chƣơng trình. 9 IV. Kỹ thuật lập trình trên .Net Framework 9 1. Ngôn ngữ C# 9 2. Kỹ thuật hook thông điệp của hệ thống 10 3. Kỹ thuật Plug-in 11 V. MÔ HÌNH LẬP TRÌNH VỚI ĐỐI TƢỢNG CỦA OFFICE 14 1. Kiến trúc của Office 14 2. Các sự kiện trong mô hình đối tƣợng của Word 18 3. Làm việc với các đối tƣợng của Word 20 a. Làm việc với đối tƣợng ứng dụng 20 b. Làm việc với đối tƣợng hộp thoại 21 2
- c. Làm việc với các ô cửa sổ 22 d. Làm việc với các mẫu (Templates) 22 e. Làm việc với các văn bản (Documents) 22 f. Làm việc với đối tƣợng Miền (Range Object) 24 g. Làm việc với các Bookmark 36 h. Làm việc với các bảng 37 VI. HỆ THỐNG GHI HOẠT ĐỘNG CỦA MICROSOFT WORD 40 1. Mô hình phân rã chức năng 40 2. Các mô đun trong chƣơng trình 40 a. Mô đun ghi các hoạt động của Word 41 b. Mô đun ghi các thao tác của bàn phím 41 c. Các mô đun ghi thao tác của chuột 42 VII. THỰC NGHIỆM 43 1. Cấu hình phần cứng 43 2. Thực nghiệm ghi các hoạt động của Microsoft word 44 VIII. ĐÁNH GIÁ KẾT QUẢ 45 1. Mục tiêu đạt đƣợc 45 2. Hạn chế 46 3. Kết luận 46 TÀI LIỆU THAM KHẢO 47 DANH SÁCH CÁC HÌNH Hình 3: Tạo project cho chƣơng trình 11 Hình 4: Chọn loại dự án để nhúng vào MS Word 11 Hình 5: Chọn ngôn ngữ lập trình 12 Hình 6: Chọn phần mềm để nhúng Add-In 12 Hình 7: Đặt tên cho Add-In 13 Hình 8: Thiết lập chức năng Add-In đƣợc khởi động cùng chƣơng trình chính 13 Hình 9: Kết thúc tạo Add-In, chuyển sang viết mã 13 3
- Hình 10: Kiến trúc phân bậc của mô hình đối tƣợng trong Word 14 Hình 11: Các đối tƣợng liên quan đến đối tƣợng văn bản của Word 15 Hình 12: Các đối tƣợng liên quan đến đối tƣợng Miền của Word 16 Hình 13: Các đối tƣợng liên quan đến đối tƣợng hình (shape) của Word . 17 Hình 14: Đánh dấu có sử dụng Add-in hay Template 22 Hình 16: Kết quả đƣợc ghi ra tệp text 45 DANH SÁCH CÁC BẢNG Bảng 1: Danh sách các sự kiện của đối tƣợng Word 18 Bảng 2: Danh sách các sự kiện của đối tƣợng document 19 Bảng 3: Danh sách các sự kiện của đối tƣợng bookmark 19 Bảng 4: Danh sách các sự kiện của đối tƣợng nút XML 20 Bảng 5: Bảng các phƣơng thức của đối tƣợng Miền 29 Bảng 6: Danh sách các thuộc tính của đối tƣợng miền 36 Bảng 7: Danh sách các phƣơng thức của Bookmarks 36 Bảng 8: Danh sách các thuộc tính của Bookmarks 37 Bảng 9: Danh sách các phƣơng thức của bảng 37 Bảng 10: Danh sách các thuộc tính của bảng 40 4
- I. GIỚI THIỆU Hiện nay chất lƣợng ngƣời lao động là yếu tố chính quyết định thành công của doanh nghiệp. Với mục tiêu “Chất lƣợng đào tạo là sự sống còn của nhà trƣờng”, trƣờng Đại học Dân lập Hải phòng đã liên kết với các tổ chức quốc tế để nâng cao năng lực, kỹ năng làm việc của sinh viên khi tốt nghiệp. Học tập với công cụ trực quan đã đem lại hiệu quả cao trong học tập cũng nhƣ nâng cao kỹ năng thực hành của ngƣời học. Nhiều học liệu đã đƣợc cung cấp để hy vọng đạt đƣợc kết quả đó. Tuy nhiên, đối với chƣơng trình học tin học hiện nay mới chỉ có nhiều tài liệu và phƣơng tiện nhƣng cách đào tạo vẫn cũ nên không tận dụng đƣợc thế mạnh của máy tính mang lại đặc biệt không đánh giá đƣợc quá trình tự học của ngƣời học. Nhóm tác giả đã nghiên cứu kết hợp kỹ thuật mô phỏng trên máy tính, lý luận dạy học đại học và ngôn ngữ lập trình để tạo ra công cụ nhằm khắc phục một số nhƣợc điểm nêu trên. II. CƠ SỞ LÝ LUẬN THỰC HIỆN ĐỀ TÀI Để đáp ứng nhu cầu lao động có trình độ cao trong xã hội, Tin học là một tiêu chí không thể thiếu, nhƣng một số năm gần đây việc đào tạo kỹ năng tin học văn phòng nói chung không còn quan tâm đầy đủ. Chƣơng trình đào tạo không còn phù hợp với nhu cầu xã hội. Do vậy, trƣờng Đại học Dân lập Hải phòng đã liên kết với tổ chức quốc tế để cấp chứng chỉ nghề tin học (ICDL) cho sinh viên. Nhƣng để học viên có trình độ và kỹ năng thi đƣợc chứng chỉ này còn vấn đề cần giải quyết. Học viên phải học trong trƣờng với thời gian hạn hẹp. Kỹ năng tự học của sinh viên còn yếu nên gặp những vấn đề mới thƣờng nản chí. Đọc tài liệu dài, không trực quan và không hấp dẫn ngƣời học dẫn đến hiệu quả học tập kém. Đánh giá quá trình học của ngƣời học ngoài giờ lên lớp chƣa đƣợc thực hiện. Hầu hết việc học của sinh viên ngoài giờ phụ thuộc hoàn toàn vào sự tự giác của ngƣời học, không có thƣớc đo để đánh giá hiệu quả của việc tự học nhƣ thế nào. 5
- Để khắc phục một phần các yếu tố trên. Nhóm tác giả đã nghiên cứu phƣơng pháp ghi nhận các hoạt động của Phần mềm Microsoft Word. Để từ đó xây dựng học liệu và chƣơng trình kiểm tra kỹ năng của học viên để hỗ trợ trƣớc khi thi chứng Chỉ ICDL. 1. DẠY VÀ HỌC Trong phần này chúng tôi điểm lại một số nhân tố chính ảnh hƣởng đến quá trình dạy và học. - Quá trình nhận thức của con ngƣời đƣợc chia thành 6 bậc (Hình 1). Do đó việc sinh viên áp dụng đƣợc những kiến thức thu nhận đƣợc rất quan trọng. Theo tài liệu lí luận dạy học đại học [3] hiện nay đào tạo theo hƣớng lấy ngƣời học làm trung tâm tức là cần tập trung vào một số tiêu chí sau: Thứ nhất: Ngƣời dạy phải luôn luôn hƣớng đến ngƣời học, nắm đƣợc đặc điểm, kiểu tƣ duy của ngƣời học, dạy cho ngƣời học cái họ cần, giáo dục cần, xã hội cần chứ không phải chỉ dạy cái mình có. Hình 1 Mô hình phân cấp nhận thức Thứ hai: Giao việc, bằng nhiều phƣơng thức tạo điều kiện buộc ngƣời học làm việc, ngƣời học phải là ngƣời chủ động chiếm lĩnh tri thức bằng nhiều Giáo viên cách khác nhau. Thứ ba: Hợp tác giữa các thành viên trong hoạt động dạy học. Sinh viên Thứ tư: Thực hiện có hiệu quả “học đi đôi với hành”, “lí luận gắn liền với thực tiễn”, khai thác tối đa vốn kinh nghiệm của ngƣời học. Học liệu, Internet Bạn bè Thứ năm: Sử dụng hợp lý các phƣơng tiện dạy học, truyền thông đa Hình 2: Mô hình lấy ngƣời học làm trung tâm phƣơng tiện, góp phần huy động tối đa các giác quan của ngƣời học tham gia vào quá trình dạy học. 6
- Hoạt động dạy học đƣợc hiểu là quá trình tổ chức cho sinh viên học, trong đó giáo viên đóng vai trò ngƣời tổ chức và ngƣời hỗ trợ cho sinh viên làm chủ đƣợc kiến thức cũng nhƣ kỹ năng của môn học đó. 2. LÝ THUYẾT MÔ PHỎNG a. Mô hình: Mô hình đƣợc hiểu là một đối tƣợng đại diện cho một đối tƣợng khác, trong đó mô hình chỉ giữ lại các thuộc tính, tính chất điển hình của đối tƣợng đƣợc biểu diễn. Ví dụ: - Dùng sơ đồ để biểu diễn một hệ thống mạng. Sơ đồ là mô hình của hệ thống mạng. - Mô hình máy bay để biểu diễn một loại máy bay nào đó. - Sơ đồ thiết kế mạch điện là mô hình của bản mạch điện trong thực tế. b. Mô hình hóa: Mô hình hóa là phƣơng pháp thay thế hệ thống gốc bằng mô hình từ đó có thể khảo sát, thực nghiệm trên mô hình để có thể có kết quả giống với thực nghiệm trên đối tƣợng gốc [7]. c. Mô phỏng: Mô phỏng là kỹ thuật dùng để giả lập môi trƣờng giống nhƣ môi trƣờng thật dùng trong lĩnh vực nghiên cứu và đào tạo đã mang lại nhiều thành tựu nhƣ giảm chi phí huấn luyện, nâng cao kỹ năng của ngƣời học, Tuy nhiên, một định nghĩa chuẩn về mô phỏng chƣa đƣợc thống nhất. Một số quan điểm về mô phỏng đƣợc nêu ra nhƣ sau [5]: - Sự đại diện các thuộc tính chọn lọc của một hệ thống bằng một hệ thống khác. - Sự đại diện về mặt hoạt động hoặc các đặc điểm của một quá trình hoặc một hệ thống qua việc sử dụng quá trình, hệ thống khác. - Mô phỏng là một chƣơng trình tin học, sử dụng thuật toán hoặc lý luận logic để tái tạo các điểm chọn lọc của một hệ theo cách mà hiệu ứng do sự thay đổi các giá trị các giá trị của các biến riêng biệt có thể quan sát đƣợc. Thuật toán và logic phải quan hệ cơ bản với hệ đang xét và không chỉ dùng để chọn những quan sát khác nhau đƣợc chuẩn bị trƣớc” [2]. 7
- Vậy mô phỏng là hệ thống có các đặc trƣng có thể thay thế hệ thống thật. Tuy nhiên qua nghiên cứu về lý thuyết mô phỏng ngƣời ta đã chỉ ra mô hình đƣợc xây dựng chỉ gần đúng với đối tƣợng gốc. Dù vậy mô phỏng vẫn là phƣơng pháp hiệu quả để nghiên cứu các đối tƣợng. - Toàn bộ quá trình liên quan tới việc xây dựng mô hình hệ thống cùng nghiên cứu nó gọi là mô hình hóa hệ thống. Việc nghiên cứu mô hình hóa có sử dụng mô hình gọi là mô phỏng [3]. d. Lợi ích của mô phỏng: Mô phỏng đem lại nhiều lợi ích cho ngƣời học đƣợc thể hiện ở một số đặc điểm sau: - Nhận thức: Trực quan, dễ tiếp cận và đo lƣờng, lặp lại nhiều lần, - Công nghệ: Nhanh, an toàn, tiết kiệm thời gian, - Kinh tế: Một chƣơng trình mô phỏng và học liệu đƣợc sử dụng nhiều lần, cho nhiều ngƣời, đem lại hiệu quả kinh tế cao. Vậy hoạt động mô phỏng là một trong những hình thức đào tạo tiên tiến, hiệu quả và giúp sinh viên làm quen thực sự với công việc, tích luỹ kinh nghiệm thực tế và nâng cao các kỹ năng nghề nghiệp của mình. III. GIẢI PHÁP CÔNG NGHỆ 1. Giải pháp mô phỏng (Simulation) Khi chƣơng trình mô phỏng đƣợc kích hoạt, ngƣời dùng có thể ghi lại hoạt động của chƣơng trình và có thể xem lại quá trình hoạt động. a. Ghi kịch bản - Mô đun ghi các thao tác của ngƣời dùng sẽ ghi nhận các hoạt động tác động vào chƣơng trình sau đó đƣợc lƣu trữ ở bộ nhớ ngoài dạng tệp hoặc bộ nhớ trong dạng mảng hoặc danh sách (List<>). - Giảng viên căn cứ vào nội dung bài giảng để tạo kịch bản minh họa cho từng phần trong bài giảng bằng cách thực hiện trên chƣơng trình mô phỏng. Hệ thống sẽ ghi lại các hoạt động của các thao tác dƣới dạng ngữ liệu dùng để mô phỏng trong phần sau. 8
- b.Thực hiện kịch bản - Mô đun phát lại các hoạt động đƣợc ghi ở thao tác trƣớc. Các thao tác đƣợc lƣu trong tệp dữ liệu đƣợc mô đun này đọc lại và thực hiện trong chƣơng trình mô phỏng. - Các kịch bản đƣợc ghi ở bƣớc trên sẽ đƣợc thực hiện lại tại bƣớc này. Ngƣời dùng lựa chọn bài mô phỏng để chƣơng trình thực hiện lại, qua đó nội dung của bài học đƣợc minh họa trực quan trên chƣơng trình, nâng cao khả năng tiếp thu bài học của ngƣời học. 2. Đánh giá bài học thông qua tƣơng tác với chƣơng trình. - Ngƣời học thực hành lại bài học bằng cách làm theo và có thể ghi lại để tự mình xem lại liệu có thực hiện theo đúng bài không? - Thông qua việc xem các hƣớng dẫn bài học bằng hoạt động chƣơng trình mô phỏng, ngƣời học nắm bắt bài học nhanh hơn và có thể thực hiện lại ngay trên chƣơng trình mô phỏng này. Đặc biệt, với kiến thức mới nếu chỉ đọc tài liệu không thì khó hình dung. - Với phƣơng pháp này nâng cao khả năng tự học của ngƣời học. Ngƣời học chép các nội dung mô phỏng bài học để thực hiện ở nhà sau đó thực hành theo. - Cách tiếp cận này làm cho ngƣời học hứng thú học tập và có hiệu quả hơn so với cách học truyền thống và sinh viên đƣợc tƣơng tác với ứng dụng sẽ nâng cao kỹ năng thực hành. IV. Kỹ thuật lập trình trên .Net Framework 1. Ngôn ngữ C# - Ngôn ngữ lập trình C# là bƣớc cải tiến vƣợt bậc của Microsoft khi tích hợp vào Microsoft .Net Framework. Cú pháp của C# chặt chẽ, tƣờng minh, hỗ trợ các kỹ thuật lập trình hƣớng đối tƣợng, hƣớng thành phần và các tính năng lập trình hiện đại khác. Dù là ngôn ngữ lập trình bậc cao nhƣng hỗ trợ cả lập trình bậc thấp và đặc biệt cho phép can thiệp vào hệ thống mà nhiều ngôn ngữ lập trình khác không có tính năng này. Trong đề tài này chúng tôi dùng ngôn ngữ lập trình C# để xây dựng chƣơng trình. 9
- 2. Kỹ thuật hook thông điệp của hệ thống - Hook các thông điệp của hệ thống là kỹ thuật can thiệp sâu vào hệ điều hành để có thể bắt đƣợc các hoạt động của các chƣơng trình đang hoạt động trên Window và ngƣợc lại có thể điều khiển chúng ở mức cho phép. Trong Microsoft .Net Framwork. Một ứng dụng hook cần phải gọi 3 thƣ viện của Window USER32.DLL, GDI32.DLL, KERNEL.DLL, đây là 3 thƣ viện nhân của hệ điều hành Window. Một số phƣơng thức đƣợc sử dụng trong chƣơng trình cần phải gọi đến các thƣ viện nhân của hệ điều hành [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] protectedstaticexternint SetWindowsHookEx( int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] protectedstaticexternint UnhookWindowsHookEx(int idHook); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] protectedstaticexternint CallNextHookEx( int idHook, int nCode, int wParam, IntPtr lParam); 10
- 3. Kỹ thuật Plug-in - Plug-in là kỹ thuật cho phép một chƣơng trình ứng dụng có thể nhúng vào chƣơng trình nền để thực hiện một số chức năng riêng biệt mà chƣơng trình nền chƣa có. Hiện nay, kỹ thuật này cho phép phần mềm của một hãng có thể đƣợc nhiều hãng khác phát triển mà không cần phải chia sẻ mã nguồn cũng nhƣ bản thiết kế. Microsoft cung cấp tính năng này trong sản phẩm .Net Framework của họ. Các bƣớc thực hiện xây dựng một Plug-in: Hình 3: Tạo project cho chƣơng trình Hình 4: Chọn loại dự án để nhúng vào MS Word 11
- Hình 5: Chọn ngôn ngữ lập trình Hình 6: Chọn phần mềm để nhúng Add-In 12
- Hình 7: Đặt tên cho Add-In Hình 8: Thiết lập chức năng Add-In đƣợc khởi động cùng chƣơng trình chính Hình 9: Kết thúc tạo Add-In, chuyển sang viết mã 13
- V. MÔ HÌNH LẬP TRÌNH VỚI ĐỐI TƢỢNG CỦA OFFICE 1. Kiến trúc của Office Trong đề tài này nhóm chúng tôi đã tìm hiểu kiến trúc của phần mềm Office cũng nhƣ Word để từ đó tìm cách can thiệp một phần vào các hoạt động của chƣơng trình Word. Trƣớc khi vào phần xây dựng các mô đun. Chúng tôi giới thiệu kiến trúc của Word. Hình 10: Kiến trúc phân bậc của mô hình đối tƣợng trong Word Application: Ứng dụng Microsoft Word Documents: Tập đối tƣợng văn bản Document: Đối tƣợng văn bản Paragraphs: Tập các đoạn văn bản Paragraph: Đối tƣợng đoạn văn bản Range: Đối tƣợng miền dữ liệu 14
- Hình 11: Các đối tƣợng liên quan đến đối tƣợng văn bản của Word 15
- Hình 12: Các đối tƣợng liên quan đến đối tƣợng Miền của Word 16
- Hình 13: Các đối tƣợng liên quan đến đối tƣợng hình (shape) của Word 17
- 2. Các sự kiện trong mô hình đối tƣợng của Word Các sự kiện trong Microsoft Word đƣợc lặp lại trên ứng dụng Word và đối tƣợng văn bản. Sự lặp lại này cho phép ngƣời dung quyết định liệu có muốn điều khiển tất cả các sự kiện hay một số sự kiện xảy ra trong quá trình tƣơng tác với MS Word. Bảng danh sách các sự kiện trong MS Word Stt Tên các sự kiện Mô tả 1 ApplicationEvents Interface 2 ApplicationEvents_Event Interface 3 ApplicationEvents_SinkHelper class 4 ApplicationEvents2 Interface 5 ApplicationsEvents2_Event Interface 6 ApplicationEvents2_* Delegates 7 ApplicationEvents2_SinkHelper class 8 ApplicationEvents3 Interface 9 ApplicationsEvents3_Event Interface 10 ApplicationEvents3_* Delegates 11 ApplicationEvents3_SinkHelper class 12 ApplicationEvents4 Interface 13 ApplicationsEvents4_Event Interface 14 ApplicationEvents4_* Delegates 15 ApplicationEvents4_SinkHelper class 16 DocumentEvents Interface 17 DocumentEvents_Event Interface 18 DocumentEvents_* Delegates 19 DocumentEve nts_SinkHelper class 20 DocumentEvents2 Interface 21 DocumentEvents2_Event Interface 22 DocumentEvents2_* Delegates 23 DocumentEvents2_SinkHelper class Bảng 1: Danh sách các sự kiện của đối tƣợng Word 18
- Ngoài ra còn có các sự kiện (Events) cho từng đối tƣợng cụ thể. Các đối tƣợng đƣợc thêm vào 8 (Visual Studio Tools For Office) Tên sự kiện Kế thừa từ các sự kiện Document Object ActivateEvent Application.WindowActivate BeforeClose Application.DocumentBeforeClose BeforeDoubleClick Application.WindowBeforeDoubleClick BeforePrint Application.DocumentBeforePrint BeforeRightClick Application.WindowBeforeRightClick BeforeSave Application.DocumentBeforeSave CloseEvent Renamed Document.Close event to avoid collisions Deactivate Application.WindowDeactivate MailMergeAfterMerge Application.MailMergeAfterMerge MailMergeAfterRecordMerge Application.MailMergeAfterRecordMerge MailMergeBeforeMerge Application.MailMergeBeforeMerge MailMergeBeforeRecordMerge Application.MailMergeBeforeRecordMerge MailMergeDataSourceLoad Application.MailMergeDataSourceLoad MailMergeWizardSendToCustom Application.MailMergeWizardSendToCustom MailMergeWizardStateChange Application.MailMergeWizardStateChange SelectionChange Application.WindowSelectionChange Startup New event raised by 8 Shutdown New event raised by 8 SyncEvent Renamed Document.Sync event to avoid collisions WindowSize Application.WindowSize Bảng 2: Danh sách các sự kiện của đối tƣợng document Bookmark Object BeforeDoubleClick Application.WindowBeforeDoubleClick BeforeRightClick Application.WindowBeforeRightClick Deselected Application.WindowSelectionChange Selected Application.WindowSelectionChange SelectionChange Application.WindowSelectionChange Bảng 3: Danh sách các sự kiện của đối tƣợng bookmark 19
- XMLNode Object AfterInsert Document.XMLAfterInsert BeforeDelete Document.XMLBeforeDelete ContextEnter Application.XMLSelectionChange ContextLeave Application.XMLSelectionChange Deselect Application.WindowSelectionChange Select Application.WindowSelectionChange ValidationError Application.XMLValidationError Bảng 4: Danh sách các sự kiện của đối tƣợng nút XML 3. Làm việc với các đối tƣợng của Word a. Làm việc với đối tƣợng ứng dụng Trong lập trình với MS Word thì ứng dụng MS Word đƣợc khai báo nhƣ một đối tƣợng, đối tƣợng ứng dụng (Application object). Đối tƣợng ứng dụng (Application object) là đối tƣợng lớn nhất trong mô hình đối tƣợng của MS Word và là đối tƣợng gốc của MS Word. Chúng ta có thể truy cập tất cả các đối tƣợng trong mô hình đối tƣợng Word bằng cách truy cập thông qua đối tƣợng ứng dụng (Application object) và truy cập vào các thuộc tính của nó hoặc các giá trị mà nó trả về. Ví dụ: Tùy biến thuộc tính màn hình private void ThisDocument_Startup(object sender, EventArgs e) { Word.Application app = this.Application; bool oldScreenUpdateSetting = app.ScreenUpdating; Word.Range range = this.Range(ref missing, ref missing); try { app.ScreenUpdating = false; Random r = new Random(); for (int i = 1; i < 1000; i++) { range.Text = range.Text + r.NextDouble().ToString(); if (i % 333 == 0) app.ScreenRefresh(): } } finally { app.ScreenUpdating = oldScreenUpdateSetting; } } Hoặc thiết lập thuộc tính của con trỏ màn hình của Word 20
- private void ThisDocument_Startup(object sender, EventArgs e) { Word.Application app = this.Application; Word.WdCursorType oldCursor = app.System.Cursor; Word.Range range = this.Range(ref missing, ref missing); try { app.System.Cursor = Word.WdCursorType.wdCursorWait; Random r = new Random(); for (int i = 1; i < 1000; i++) { range.Text = range.Text + r.NextDouble().ToString(); } } finally { app.System.Cursor = oldCursor; } } b. Làm việc với đối tƣợng hộp thoại Các hộp thoại trong MS Word nhƣ hộp thoại Font, Color, Print, PrintPreview, Option, nằm trong Application.Dialogs Ví dụ: private void ThisDocument_Startup(object sender, EventArgs e) { Range(ref missing, ref missing).InsertAfter("Test text"); Word.Dialog d = Application.Dialogs[ Word.WdWordDialog.wdDialogFilePrint]; int result = d.Display(ref missing); if (result == -1) { DialogResult r = MessageBox.Show( "Are you sure you want to print?", "Annoying confirmation", MessageBoxButtons.YesNoCancel); if (r == DialogResult.Yes) { d.Execute(); } } } 21
- c. Làm việc với các ô cửa sổ Các ô cửa sổ chính là các văn bản đã mở (gồm cả mới và cũ) đƣợc hiển thị trong menu Windows của MS Word. Ví dụ sau tạo ra 20 cửa sổ mới trong Word sau đó hiển thị tên của từng ô cửa sổ đó. private void ThisDocument_Startup(object sender, EventArgs e) { for (int i = 0; i < 20; i++) { Application.NewWindow(); } foreach (Word.Window w in Application.Windows) { MessageBox.Show(w.Caption); } } d. Làm việc với các mẫu (Templates) Mẫu là tập thuộc tính mặc định của MS Word đƣợc ghi vào trong một tệp tin có phần mở rộng là *.dot. Thông thƣờng trong thƣ mục mặc định của MS Word có tệp mẫu là normal.dot để thiết lập thuộc tính cho văn bản mới. Hình 14: Đánh dấu có sử dụng Add-in hay Template e. Làm việc với các văn bản (Documents) Văn bản (documents) là tập các văn bản đang đƣợc mở. Đây cũng là đối tƣợng chính để chúng ta có thể lấy các thông tin về văn bản của Word. Đối tƣợng Documents nằm trong đối tƣợng Application. Có thể dùng lệnh foreach để duyệt từng văn bản trong tập các văn bản này. 22
- Ví dụ: foreach (Word.Document doc in Application.Documents) { Console.WriteLine(doc.Name); } Ví dụ: Kiểm tra chế độ hiển thị của màn hình Word switch (oWord.ActiveDocument.ActiveWindow.ActivePane.View.Type) { case Word.WdViewType.wdMasterView: Result1 += "Chế độ hiển thị: Master View "; break; case Word.WdViewType.wdNormalView: Result1 += "Chế độ hiển thị: Normal View "; break; case Word.WdViewType.wdOutlineView: Result1 += "Chế độ hiển thị: Outline View \n"; break; case Word.WdViewType.wdPrintPreview: Result1 += "Chế độ hiển thị: Print Preview "; break; case Word.WdViewType.wdPrintView: Result1 += "Chế độ hiển thị: Print View "; break; case Word.WdViewType.wdReadingView: Result1 += "Chế độ hiển thị: Reading View \n"; break; case Word.WdViewType.wdWebView: Result1 += "Chế độ hiển thị: Web view \n"; break; default: Result1 += ""; break; } hoặc kiểm tra một đối tƣợng đƣợc chọn trong vùng văn bản switch (oWord.ActiveDocument.ActiveWindow.Selection.Type) { case Word.WdSelectionType.wdNoSelection: Result1 += " " + "Chưa chọn thành phần nào \n"; break; case Word.WdSelectionType.wdSelectionBlock: Result1 += " " + "Chọn bảng \n"; break; case Word.WdSelectionType.wdSelectionColumn: Result1 += " " + "Chọn cột trong bảng\n"; break; case Word.WdSelectionType.wdSelectionFrame: Result1 += " " + "Chọn một khung trong văn bản\n"; break; case Word.WdSelectionType.wdSelectionInlineShape: Result1 += " " + "Chọn một hình được chèn chế độ Inline \n"; break; case Word.WdSelectionType.wdSelectionNormal: Result1 += " " + "Chọn một đoạn văn bản"; break; case Word.WdSelectionType.wdSelectionIP: Result1 += " " + "Chế độ soạn thảo bình thường"; break; case Word.WdSelectionType.wdSelectionRow: Result1 += " " + "Chọn hàng trong bảng"; break; case Word.WdSelectionType.wdSelectionShape: Result1 += " " + "Chọn một hình vẽ"; break; default: Result1 += ""; break; } 23
- f. Làm việc với đối tƣợng Miền (Range Object) Đối tƣợng Miền là thành phần quan trọng nhất trong văn bản. Một Miền đƣợc định nghĩa bằng một thành phần là Start và kết thúc bằng End. Ví dụ: dùng đối tƣợng Miền để chèn nội dung cho văn bản private void ThisDocument_Startup(object sender, EventArgs e) { Word.Range r = this.Range(ref missing, ref missing); r.Text = "This\nis\na\ntest."; //Nội dung được chèn nằm ở 3 dòng object startIndex = 0; object endIndex = 9; Word.Range r2 = this.Range(ref startIndex, ref endIndex); r2.Select(); string result = r2.Text; MessageBox.Show(result.Length.ToString()); MessageBox.Show(r2.Text); } Một cách khác để can thiệp vào đối tƣợng Miền là dùng StoryRanges. StoryRanges có thể can thiệp vào các vùng nhƣ footnote, header, footer, endnotes thông qua các kiểu thành viên của WdStoryType. Ví dụ: Liệt kê độ dài của các thành phần trong tài liệu private void ThisDocument_Startup(object sender, EventArgs e) { Word.Range mainTextStory = this.StoryRanges[ Word.WdStoryType.wdMainTextStory]; foreach (Word.Range range in this.StoryRanges) { MessageBox.Show(String.Format( "Story range {0} has length {1}.", range.StoryType.ToString(), range.StoryLength)); } } Bảng các phƣơng thức của đối tƣợng Miền Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức AutoFormat Tự động định dạng tài liệu theo định dạng mặc định. Calculate Tính toán các biểu thức toán học trong Miền hoặc vùng đƣợc chọn và trả về kết quả là kiểu dấu phẩy động (kiểu Single) CheckGrammar Kiểm tra ngữ pháp và từ cho một miền đƣợc chỉ định. 24
- Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức CheckSpelling Kiểm tra đánh vần cho một tài liệu hoặc vùng đƣợc chỉ định. CheckSynonyms Hiển thị hộp thoại từ điển để chọn từ, từ đồng nghĩa trong một miền đƣợc chỉ định. Collapse Trải rộng một miền hoặc vùng từ đầu đến cuối. ComputeStatistics Trả về độ dài của vùng hoặc miền dựa trên thống kê nội dung của văn bản. ConvertHangulAndHanja Chuyển đổi một miền đƣợc chỉ định từ bảng chữ cái Hàn Quốc (hangul) sang bảng chữ cái Trung Quốc (hanja) hoặc ngƣợc lại. ConvertToTable Chuyển chữ thành bảng Copy Sao chép một miền vào Clipboard. CopyAsPicture Nhƣ Copy (cho đối tƣợng tranh, ảnh) CreatePublisher Cut Chuyển một đối tƣợng trong văn bản vào Clipboard Delete Xóa DetectLanguage Phân tích xem ngôn ngữ đƣợc dùng trong văn bản là loại nào? EndOf Mở rộng sự chon lựa vùng, miền đến điểm cuối hoặc gần nhất của vùng miền đó. Expand Mở rộng vùng, miền đƣợc chọn và trả về số từ đƣợc thêm vào vùng miền đó (Kiểu Long) ExportAsFixedFormat Ghi một phần của một tài liệu định dạng PDF hoặc XPS. ExportFragment Xuất khẩu các phạm vi lựa chọn vào một tài liệu để sử dụng nhƣ là một đoạn tài liệu. GetSpellingSuggestions Trả về một bộ sƣu tập SpellingSuggestions đại diện cho những lời đề nghị nhƣ chính tả thay thế cho từ đầu tiên trong phạm vi chỉ định. 25
- Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức GoTo Trả về một đối tƣợng Phạm vi đại diện cho các vị trí bắt đầu của các mặt hàng quy định, chẳng hạn nhƣ một trang, đánh dấu, hoặc lĩnh vực. GoToEditableRange Trả về một đối tƣợng Phạm vi đại diện cho một khu vực của một tài liệu có thể đƣợc sửa đổi bởi ngƣời sử dụng quy định hoặc một nhóm ngƣời sử dụng. GoToNext Trả về một đối tƣợng Phạm vi đề cập đến vị trí bắt đầu của mục tiếp theo hoặc vị trí đƣợc chỉ định bởi đối số. GoToPrevious Trả về một đối tƣợng Phạm vi đề cập đến vị trí bắt đầu của mục trƣớc đó hoặc vị trí đƣợc chỉ định bởi đối số. ImportFragment Nhập một đoạn văn bản vào tài liệu ở phạm vi chỉ định. InRange Trả về TRUE nếu phạm vi mà phƣơng pháp này là áp dụng đƣợc chứa trong phạm vi chỉ định bởi đối số phạm vi. InsertAfter Chèn văn bản chỉ định tại điểm cuối của một miền. InsertAlignmentTab Chèn một tab tuyệt đối mà luôn luôn là vị trí trong cùng một chỗ, tƣơng đối so với lợi nhuận hoặc indents. InsertAutoText Cố gắng tìm kiếm các văn bản trong phạm vi chỉ định hoặc văn bản xung quanh phạm vi với một tên mục nhập hiện có AutoText. InsertBefore Chèn văn bản chỉ định trƣớc khi phạm vi chỉ định. InsertBreak Chèn một trang, cột, hoặc ngắt đoạn. InsertCaption Chèn một chú thích ngay lập tức trƣớc hoặc sau khi phạm vi chỉ định. InsertCrossReference Chèn một cross-tham chiếu đến một nhóm, đánh dấu, ghi chú, hoặc EndNote, hoặc đến một mục cho một nhãn chú thích đƣợc định nghĩa (ví dụ, một phƣơng trình, con số, hoặc bảng). InsertDatabase Lấy dữ liệu từ một nguồn dữ liệu (ví dụ: Microsoft Word, một bảng tính Microsoft Office Excel, hoặc một cơ sở dữ liệu 26
- Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức Microsoft Office Access) và chèn các dữ liệu nhƣ là một bảng ở vị trí của các phạm vi chỉ định. InsertDateTime Chèn ngày hiện tại hoặc thời gian, hoặc cả hai, hoặc là dƣới dạng văn bản hoặc là một lĩnh vực Thời gian. InsertFile Chèn tất cả hoặc một phần của tập tin chỉ định. InsertParagraph Thay thế các quy định với một đoạn mới. InsertParagraphAfter Chèn một dấu đoạn sau khi một miền. InsertParagraphBefore Chèn một đoạn mới trƣớc khi phạm vi chỉ định. InsertSymbol Chèn một biểu tƣợng trong vị trí của phạm vi chỉ định. InsertXML Chèn XML chỉ định vào tài liệu ở phạm vi chỉ định, thay thế bất kỳ văn bản trong phạm vi. InStory Thật sự nếu phạm vi mà phƣơng pháp này đƣợc áp dụng trong các câu chuyện tƣơng tự nhƣ phạm vi chỉ định bởi đối số Phạm vi. IsEqual Đúng nếu phạm vi mà phƣơng pháp này đƣợc áp dụng là tƣơng đƣơng với phạm vi chỉ định bởi đối số phạm vi. LookupNameProperties Xem xét tên trong danh sách sách địa chỉ toàn cầu và hiển thị hộp thoại Properties, trong đó bao gồm thông tin về tên đƣợc chỉ định. ModifyEnclosure Thêm, sửa đổi hoặc loại bỏ đƣờng viền xung quanh các ký tự hoặc ký tự chỉ định. Move Di chuyển các đối tƣợng đã trải xuống. MoveEnd Di chuyển vị trí đến vị trí cuố cùng của một miền. MoveEndUntil Di chuyển vè cuối văn bản cho đến khi tìm thấy đối tƣợng MoveEndWhile Di chuyển vị trí ký tự kết thúc của một vùng trong khi bất kỳ của các đối tƣợng cụ thể đƣợc tìm thấy trong tài liệu. 27
- Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức MoveStart Di chuyển vị trí bắt đầu của phạm vi chỉ định. MoveStartUntil Di chuyển vị trí bắt đầu của phạm vi chỉ định cho đến khi một trong các kí tự chỉ định đƣợc tìm thấy trong tài liệu. MoveStartWhile Di chuyển vị trí bắt đầu của dòng sản phẩm quy định trong khi bất kỳ của các nhân vật cụ thể đƣợc tìm thấy trong tài liệu. MoveUntil Di chuyển phạm vi chỉ định cho đến khi một trong các kí tự chỉ định đƣợc tìm thấy trong tài liệu. MoveWhile Di chuyển phạm vi chỉ định trong khi bất kỳ của các nhân vật cụ thể đƣợc tìm thấy trong tài liệu. Next Trả về một đối tƣợng Phạm vi đại diện cho đơn vị quy định liên quan đến phạm vi chỉ định. NextSubdocument Di chuyển phạm vi đến subdocument tiếp theo. Paste Phụ trang nội dung của Clipboard phạm vi chỉ định. PasteAndFormat Dán ô và các định dạng bảng lựa chọn chúng theo quy định. PasteAppendTable Sáp nhập các ô dán vào một bảng hiện tại bằng cách chèn các hàng dán giữa các hàng lựa chọn. Không có ô đƣợc ghi đè. PasteAsNestedTable Dán một ô hoặc nhóm ô nhƣ là một bảng lồng nhau vào phạm vi lựa chọn. PasteExcelTable Dán và các định dạng bảng Microsoft Excel. PasteSpecial Phụ trang nội dung Clipboard. PhoneticGuide Bổ sung thêm hƣớng dẫn ngữ âm cho phạm vi chỉ định. Previous Trả về phạm vi trƣớc đó liên quan đến phạm vi chỉ định. PreviousSubdocument Di chuyển phạm vi cho subdocument trƣớc. Relocate Trong đề cƣơng xem, di chuyển các đoạn văn trong phạm vi quy định sau khi đoạn tiếp theo có thể nhìn thấy hoặc trƣớc 28
- Stt Tên phƣơng thức Mô tả chức năng các phƣơng thức khi đoạn có thể nhìn thấy trƣớc đó. Select Chọn phạm vi chỉ định. SetListLevel Thiết lập danh sách cho một hoặc nhiều mục trong một danh sách số. SetRange Các bộ bắt đầu và kết thúc vị trí ký tự cho một phạm vi hiện tại. Sort Sắp xếp các đoạn văn trong phạm vi chỉ định. SortAscending Phân loại các đoạn văn hoặc các hàng bảng trong thứ tự tăng dần chữ và số. SortDescending Phân loại các đoạn văn trong giảm dần thứ tự chữ và số. StartOf Di chuyển hoặc mở rộng vị trí bắt đầu của phạm vi chỉ định hoặc lựa chọn để bắt đầu của đơn vị văn bản quy định gần nhất. Phƣơng pháp này trả về một Long cho biết số ký tự mà phạm vi hoặc lựa chọn đã đƣợc di chuyển hoặc mở rộng. Phƣơng pháp này trả về một số âm nếu phong trào ngƣợc qua tài liệu. SubscribeTo Bạn đã yêu cầu Trợ giúp cho một từ khoá Visual Basic chỉ đƣợc sử dụng trên máy Macintosh. Đối với thông tin về phƣơng pháp SubscribeTo của đối tƣợng Phạm vi, tham khảo ý kiến Trợ giúp tài liệu tham khảo ngôn ngữ bao gồm Microsoft Office Macintosh Edition. TCSCConverter Chuyển đổi phạm vi chỉ định từ chữ Trung Quốc truyền thống sang giản thể hoặc ngƣợc lại. WholeStory Mở rộng phạm vi để bao gồm toàn bộ câu chuyện Bảng 5: Bảng các phƣơng thức của đối tƣợng Miền 29
- Danh sách các thuộc tính của đối tƣợng Miền Stt Tên các thuộc tính Mô tả Application Trả về một đối tƣợng Application đại diện cho ứng dụng Microsoft Word. Bold Đúng nếu phạm vi đƣợc định dạng nhƣ in đậm. Đọc / ghi dài. BoldBi Đúng nếu phông chữ hoặc phạm vi đƣợc định dạng nhƣ in đậm. Trả về True, False, hoặc wdUndefined (một hỗn hợp của văn bản in đậm và không đậm). Có thể đƣợc thiết lập để True, False, hoặc wdToggle. Đọc / ghi dài. BookmarkID Trả về số dấu trang bao quanh đầu phạm vi quy định, trả về 0 (zero) nếu không có đánh dấu tƣơng ứng. Read-only dài. Bookmarks Trả về một bộ sƣu tập Bookmarks đại diện cho tất cả các bookmark trong một tài liệu, phạm vi, hoặc lựa chọn. Borders Trả về một bộ sƣu tập biên giới đại diện cho tất cả các biên giới cho các đối tƣợng quy định. Case Trả về hoặc đặt một hằng số WdCharacterCase đại diện cho trƣờng hợp của văn bản trong phạm vi chỉ định. Đọc / ghi. Trả về một bộ sƣu tập các tế bào đại diện cho các tế bào Cells bảng trong phạm vi một. Characters Trả về một bộ sƣu tập nhân vật đại diện cho các nhân vật trong phạm vi một. CharacterStyle Trả về một biến thể đại diện cho phong cách đƣợc sử dụng để định dạng một hoặc nhiều ký tự. CharacterWidth Trả về hoặc bộ chiều rộng ký tự của các phạm vi chỉ định. Đọc / ghi WdCharacterWidth. Columns Trả về một bộ sƣu tập Cột đại diện cho tất cả các cột của bảng trong phạm vi. CombineCharacters Đúng nếu phạm vi chỉ định chứa các ký tự kết hợp Đọc / ghi Boolean. Comments Trả về một bộ sƣu tập Bình luận đại diện cho tất cả các ý kiến trong các tài liệu quy định, lựa chọn, hoặc phạm vi. 30
- Stt Tên các thuộc tính Mô tả ContentControls Trả về một bộ sƣu tập ContentControls đại diện kiểm soát nội dung chứa trong một vùng. Creator Trả về một số nguyên 32-bit cho biết các ứng dụng mà các đối tƣợng quy định đã đƣợc tạo ra. Read-only dài. DisableCharacterSpaceGrid Đúng nếu Microsoft Word bỏ qua số lƣợng các ký tự trên mỗi dòng cho các đối tƣợng Phạm vi tƣơng ứng. Đọc / ghi Boolean. Document Trả về một đối tƣợng tài liệu liên quan đến phạm vi chỉ định. Duplicate Trả về một đối tƣợng Phạm vi đọc duy nhất đại diện cho tất cả các thuộc tính của phạm vi chỉ định. Editors Trả về một đối tƣợng các biên tập viên đại diện cho tất cả ngƣời sử dụng có thẩm quyền để sửa đổi một lựa chọn hoặc phạm vi trong một tài liệu. EmphasisMark Trả về hoặc đặt dấu nhấn mạnh cho một nhân vật hoặc chuỗi ký tự đƣợc chỉ định. Đọc / ghi WdEmphasisMark. End Trả về hoặc đặt vị trí ký tự kết thúc của một miền. Đọc / ghi dài. EndnoteOptions Trả về một đối tƣợng EndnoteOptions đại diện cho các ghi chú trong phạm vi một. Endnotes Trả về một bộ sƣu tập ghi chú đại diện cho tất cả các ghi chú trong một miền. EnhMetaFileBits Trả về một biến thể đại diện cho một đại diện hình ảnh của một miền các văn bản xuất hiện nhƣ thế nào. Fields Trả về một bộ sƣu tập Những lĩnh vực mà đại diện cho tất cả các lĩnh vực trong phạm vi. Find Trả về một Tìm đối tƣợng có chứa các tiêu chuẩn cho một hoạt động tìm thấy. FitTextWidth Trả hoặc bộ chiều rộng (đơn vị đo lƣờng hiện hành) trong Microsoft Word phù hợp với văn bản trong việc lựa chọn hiện tại hoặc phạm vi. Đọc / ghi đơn. Trả về hoặc thiết lập một đối tƣợng Font đại diện cho các Font định dạng ký tự của các đối tƣợng quy định. Đọc / ghi chữ. FootnoteOptions Trả FootnoteOptions đối tƣợng đại diện cho chú thích trong một lựa chọn hoặc phạm vi. 31
- Stt Tên các thuộc tính Mô tả Footnotes Trả về một bộ sƣu tập chú thích đại diện cho tất cả các chú thích trong phạm vi một. FormattedText Trả về hoặc thiết lập một đối tƣợng Phạm vi bao gồm các định dạng văn bản trong phạm vi chỉ định hoặc lựa chọn. Đọc / ghi. FormFields Trả về một bộ sƣu tập FormFields mà đại diện cho tất cả các trƣờng hình thành trong phạm vi. Frames Trả về một bộ sƣu tập khung hình đại diện cho tất cả các khung trong phạm vi một. GrammarChecked True nếu một kiểm tra ngữ pháp đã đƣợc chạy trên phạm vi chỉ định hoặc tài liệu. Đọc / ghi Boolean. Trả về một bộ sƣu tập ProofreadingErrors đại diện cho các GrammaticalErrors câu mà không kiểm tra ngữ pháp vào các tài liệu quy định hoặc phạm vi. HighlightColorIndex Trả về hoặc bộ màu sắc nổi bật cho các phạm vi chỉ định. Đọc / viết WdColorIndex. HorizontalInVertical Trả về hoặc thiết lập các định dạng cho văn bản ngang trong văn bản theo chiều dọc. Đọc / ghi WdHorizontalInVerticalType. HTMLDivisions Trả về một đối tƣợng HTMLDivisions đại diện cho một bộ phận HTML trong một tài liệu Web. Hyperlinks Trả về một bộ sƣu tập siêu liên kết đại diện cho tất cả các siêu liên kết trong phạm vi chỉ định. ID Trả về hoặc đặt tên xác định phạm vi chỉ định. Đọc / ghi chuỗi. Information Trả về thông tin về phạm vi chỉ định. Biến thể InlineShapes Trả về một bộ sƣu tập InlineShapes đại diện cho tất cả các đối tƣợng InlineShape trong phạm vi một. IsEndOfRowMark Đúng nếu phạm vi chỉ định là bị sụp đổ và nằm ở vị trí đánh dấu kết thúc của dòng trong một bảng. Read-only Boolean. Italic Đúng nếu phông chữ hoặc phạm vi đƣợc định dạng nhƣ nghiêng. Đọc / ghi dài. ItalicBi Đúng nếu phông chữ hoặc phạm vi đƣợc định dạng nhƣ nghiêng. Đọc / ghi dài. 32
- Stt Tên các thuộc tính Mô tả Kana Trả về hoặc bộ cho dù phạm vi quy định của văn bản tiếng Nhật là hiragana hay katakana. Đọc / ghi WdKana. LanguageDetected Trả về hoặc thiết lập một giá trị xác định liệu Microsoft Word đã phát hiện ra ngôn ngữ của văn bản quy định. Đọc / ghi Boolean. LanguageID Trả về hoặc đặt một hằng số WdLanguageID đại diện cho ngôn ngữ cho phạm vi chỉ định. Đọc / ghi. LanguageIDFarEast Trả về hoặc thiết lập một ngôn ngữ Đông Á cho đối tƣợng quy định. Đọc / ghi WdLanguageID. LanguageIDOther Trả về hoặc bộ ngôn ngữ cho các phạm vi chỉ định. Đọc / ghi WdLanguageID. ListFormat Trả về một đối tƣợng ListFormat đại diện cho tất cả các đặc điểm định dạng danh sách của một miền. ListParagraphs Trả về một bộ sƣu tập ListParagraphs đại diện cho tất cả các đoạn đƣợc đánh số trong phạm vi. ListStyle Trả về một biến thể đại diện cho phong cách đƣợc sử dụng để định dạng một danh sách gạch đầu dòng hoặc danh sách số. NextStoryRange Trả về một đối tƣợng Phạm vi đề cập đến câu chuyện tiếp theo. Phạm vi NoProofing Đúng nếu chính tả và ngữ pháp kiểm tra bỏ qua các văn bản quy định. Đọc / ghi dài. Trả về một bộ sƣu tập OMaths đại diện cho các đối tƣợng OMaths OMath trong phạm vi chỉ định. Orientation Trả về hoặc là định hƣớng của văn bản trong phạm vi một khi các tính năng văn bản hƣớng đƣợc kích hoạt. Đọc / ghi WdTextOrientation. PageSetup Trả về một đối tƣợng PageSetup đó là liên kết với phạm vi chỉ định. ParagraphFormat Trả về hoặc thiết lập một đối tƣợng ParagraphFormat đại diện cho các thiết lập khoản cho phạm vi chỉ định. Đọc / ghi. Paragraphs Trả về một bộ sƣu tập các khoản đại diện cho tất cả các đoạn văn trong phạm vi chỉ định. ParagraphStyle Trả về một biến thể đại diện cho phong cách đƣợc sử dụng để định dạng một đoạn văn. 33
- Stt Tên các thuộc tính Mô tả Parent Trả về một đối tƣợng đại diện cho đối tƣợng cha của đối tƣợng Phạm vi quy định. ParentContentControl Trả về một đối tƣợng ContentControl đại diện cho cha mẹ kiểm soát nội dung phạm vi chỉ định. PreviousBookmarkID Trả về số lƣợng các dấu trang cuối cùng bắt đầu trƣớc hoặc cùng một vị trí nhƣ phạm vi quy định. Read-only dài. ReadabilityStatistics Trả về một bộ sƣu tập ReadabilityStatistics đại diện cho các số liệu thống kê khả năng đọc các tài liệu quy định hoặc phạm vi. Revisions Trả về một bộ sƣu tập sửa đổi đại diện cho những thay đổi theo dõi trong phạm vi. Rows Trả về một bộ sƣu tập dòng đại diện cho tất cả các hàng bảng trong phạm vi một. Scripts Trả về một bộ sƣu tập kịch bản đại diện cho bộ sƣu tập của các kịch bản HTML trong đối tƣợng quy định. Sections Trả về một bộ sƣu tập mục đại diện cho các bộ phận trong phạm vi chỉ định. Sentences Trả về một bộ sƣu tập câu đại diện cho tất cả các câu trong phạm vi. Shading Trả về một đối tƣợng đổ bóng đề cập đến các định dạng bóng cho các đối tƣợng quy định. ShapeRange Trả về một bộ sƣu tập ShapeRange đại diện cho tất cả các đối tƣợng hình trong phạm vi chỉ định. ShowAll True nếu tất cả các ký tự nonprinting (chẳng hạn nhƣ văn bản ẩn, đánh dấu tab, nhãn hiệu không gian, và đánh dấu đoạn) đƣợc hiển thị. Đọc / ghi Boolean. SmartTags Trả về một đối tƣợng SmartTags đại diện cho một thẻ thông minh trong một tài liệu. SpellingChecked Đúng chính tả nếu đã đƣợc kiểm tra trong suốt phạm vi chỉ định hoặc tài liệu. False nếu tất cả hoặc một số phạm vi hoặc tài liệu đã không đƣợc kiểm tra chính tả. Đọc / ghi Boolean. SpellingErrors Trả về một bộ sƣu tập ProofreadingErrors đại diện từ xác định là lỗi chính tả trong phạm vi chỉ định. 34
- Stt Tên các thuộc tính Mô tả Start Trả về hoặc đặt vị trí ký tự bắt đầu của một miền. Đọc / ghi dài. StoryLength Trả về số ký tự trong câu chuyện có chứa phạm vi chỉ định. Read-only dài. StoryType Trả về loại câu chuyện cho phạm vi chỉ định, lựa chọn, hoặc đánh dấu. Read-chỉ WdStoryType. Style Trả về hoặc thiết lập phong cách cho các đối tƣợng quy định. Đọc / viết biến thể. Subdocuments Trả về một bộ sƣu tập các tài liệu phụ đại diện cho tất cả các tài liệu phụ trong phạm vi chỉ định hoặc tài liệu. SynonymInfo Trả về một đối tƣợng SynonymInfo có chứa thông tin từ các từ điển từ đồng nghĩa, trái nghĩa, hoặc các từ và các biểu thức liên quan về nội dung của một miền. Tables Trả về một bộ sƣu tập bảng đại diện cho tất cả các bảng trong phạm vi chỉ định. TableStyle Trả về một biến thể đại diện cho phong cách đƣợc sử dụng để định dạng một bảng. Text Trả về hoặc bộ các văn bản trong phạm vi chỉ định hoặc lựa chọn. Đọc / ghi chuỗi. Đọc / ghi chuỗi. TextRetrievalMode Trả về một đối tƣợng TextRetrievalMode kiểm soát văn bản đƣợc lấy từ dãy nào. Đọc / ghi. TopLevelTables Trả về một bộ sƣu tập bảng đại diện cho các bảng ở cấp độ ngoài cùng làm tổ trong phạm vi hiện tại. TwoLinesInOne Trả về hoặc bộ Microsoft Word đặt hai dòng văn bản trong một và quy định cụ thể các nhân vật kèm theo các văn bản, nếu có. Đọc / ghi WdTwoLinesInOneType. Underline Trả hoặc bộ của nhấn mạnh áp dụng cho một miền. Đọc / viết WdUnderline. WordOpenXML Trả về một chuỗi đại diện cho XML chứa trong phạm vi trong các định dạng Microsoft Word Office Open XML. Words Trả về một bộ sƣu tập từ đại diện cho tất cả các từ trong phạm vi một. 35
- Stt Tên các thuộc tính Mô tả XML Trả về một chuỗi đại diện cho văn bản XML trong đối tƣợng quy định. XMLNodes Trả về một bộ sƣu tập XMLNodes đại diện các yếu tố XML, bao gồm cả phạm vi quy định bất kỳ yếu tố chỉ một phần trong phạm vi. XMLParentNode Trả về một đối tƣợng XmlNode đại diện cha mẹ nút XML của một miền. Bảng 6: Danh sách các thuộc tính của đối tƣợng Miền g. Làm việc với các Bookmark Bookmark đƣợc thêm vào trong văn bản khi ngƣời dùng cần đánh dấu một vùng tài liệu hoặc đối tƣợng. Các phương thức Stt Tên Mô tả Add Trả về một đối tƣợng Bookmark đại diện cho một trang đánh dấu thêm vào một Miền Exists Xem xét bookmark chỉ định có tồn tại hay không. Trả về True nếu tồn tại. Item Trả về một đối tƣợng Bookmark riêng lẻ trong một tập hợp. Bảng 7: Danh sách các phƣơng thức của Bookmarks Thuộc tính Stt Tên Mô tả Trả về một đối tƣợng Application đại diện cho ứng dụng Application Microsoft Word. Trả về số lƣợng của các mục trong tập Bookmarks. chỉ đọc Kiểu Count Long. Trả về một số nguyên 32-bit cho biết các ứng dụng mà các đối Creator tƣợng chỉ định đã đƣợc tạo ra. Read-only Kiểu Long. Trả về hoặc thiết lập các tùy chọn sắp xếp cho đánh dấu tên hiển DefaultSorting thị trong hộp thoại Bookmark (Insert menu). Đọc / ghi WdBookmarkSortBy. 36
- Trả về một đối tƣợng đại diện cho đối tƣợng cha của bộ sƣu tập Parent Bookmarks chỉ định. Đúng nếu đánh dấu ẩn bao gồm trong tập Bookmarks. Đọc / ghi ShowHidden kiểu Boolean. Bảng 8: Danh sách các thuộc tính của Bookmarks h. Làm việc với các bảng Stt Tên Mô tả Áp dụng kiểu chỉ định, nhƣng duy trì bất kỳ định ApplyStyleDirectFormatting dạng mà ngƣời dùng trực tiếp áp dụng. Xác định làm thế nào Microsoft Office Word thay AutoFitBehavior đổi kích thƣớc một bảng khi tính năng Tự động Điều chỉnh đƣợc sử dụng. Áp dụng một kiểu bảng đƣợc xác định trƣớc vào AutoFormat một bảng. Trả về một đối tƣợng ô trong bảng đại diện cho Cell một ô trong một bảng. Chuyển đổi một bảng thành văn bản và trả về một ConvertToText đối tƣợng Miền thể hiện giới hạn văn bản. Delete Xóa các bảng đƣợc chỉ định. Select Chọn bảng đƣợc chỉ định. Sort Sắp xếp các bảng đƣợc chỉ định. Sắp xếp đoạn văn hoặc các hàng bảng trong thứ tự SortAscending tăng dần chữ và số. Sắp xếp các hàng trong bảng theo thứ tự giảm dần SortDescending chữ và số. Chèn một đoạn trống ngay phía trên dòng chỉ định Split trong bảng, và trả về một đối tƣợng Bảng có chứa cả hàng chỉ định định và các hàng tiếp theo. Cập nhật bảng với các đặc điểm của một định dạng UpdateAutoFormat bảng đƣợc xác định trƣớc. Bảng 9: Danh sách các phƣơng thức của bảng Danh sách các thuộc tính của bảng 37
- Stt Name Description Cho phép Microsoft Word tự động thay đổi kích AllowAutoFit thƣớc các tế bào trong một bảng để phù hợp với nội dung của họ. Đọc / ghi Boolean. Cho phép Microsoft Word để phá vỡ các bảng quy AllowPageBreaks định trên các trang. Đọc / ghi Boolean. Trả về một đối tƣợng Application đại diện cho ứng Application dụng Microsoft Word. Trả về hoặc đặt một Boolean đại diện cho việc áp dụng các ban nhạc phong cách cho các cột trong ApplyStyleColumnBands một bảng nếu áp dụng phong cách bảng cài sẵn cung cấp cho dải phong cách cho các cột. Đọc / ghi. Đúng đối với Microsoft Word để áp dụng định dạng ApplyStyleFirstColumn cột để cột đầu tiên của bảng quy định. Đọc / ghi Boolean. Đúng đối với Microsoft Word để áp dụng định dạng ApplyStyleHeadingRows nhóm hàng hàng đầu tiên của bảng chọn. Đọc / ghi Boolean. Đúng đối với Microsoft Word để áp dụng định dạng ApplyStyleLastColumn cột cuối cùng cột cuối cùng của bảng quy định. Đọc / ghi Boolean. Đúng đối với Microsoft Word để áp dụng định dạng ApplyStyleLastRow cuối cùng hàng hàng cuối cùng của bảng quy định. Đọc / ghi Boolean. Trả về hoặc đặt một Boolean đại diện cho việc áp dụng các ban nhạc phong cách các hàng trong một ApplyStyleRowBands bảng nếu áp dụng phong cách bảng cài sẵn cung cấp cho phong cách dải cho các hàng. Đọc / ghi. Trả về loại định dạng tự động đƣợc áp dụng cho các AutoFormatType bảng quy định. Read-only dài. Borders Trả về một bộ sƣu tập biên giới đại diện cho tất cả 38
- các biên giới cho các đối tƣợng quy định. Trả về hoặc đặt số lƣợng của không gian (bằng điểm) để thêm dƣới đây các nội dung của một tế bào BottomPadding duy nhất hoặc tất cả các tế bào trong một bảng. Đọc / ghi đơn. Trả về một bộ sƣu tập cột đại diện cho tất cả các cột Columns của bảng trong bảng. Read-only. Trả về một số nguyên 32-bit cho biết các ứng dụng Creator mà các đối tƣợng quy định đã đƣợc tạo ra. Read- only dài. Trả về hoặc đặt nhãn xác định cho các bảng quy ID định khi tài liệu đƣợc lƣu dƣới dạng một trang Web. Đọc / ghi chuỗi. Trả về hoặc bộ số tiền của không gian (tại các điểm) LeftPadding để thêm vào bên trái của nội dung của tất cả các tế bào trong một bảng. Đọc / ghi đơn. Trả về mức độ làm tổ của bảng quy định. Read-only NestingLevel dài. Trả về một đối tƣợng đại diện cho đối tƣợng cha của Parent đối tƣợng Bảng quy định. Trả về hoặc đặt chiều rộng ƣa thích (tại các điểm PreferredWidth hoặc nhƣ là một tỷ lệ phần trăm của chiều rộng cửa sổ) cho các bảng quy định. Đọc / ghi đơn. Trả về hoặc thiết lập các đơn vị đo lƣờng ƣa thích PreferredWidthType để sử dụng cho chiều rộng của bảng quy định. Đọc / ghi WdPreferredWidthType. Trả về một đối tƣợng Phạm vi đại diện cho phần của Range một tài liệu đƣợc chứa trong các bảng quy định. Trả về hoặc đặt số lƣợng của không gian (bằng RightPadding điểm) để thêm vào bên phải của các nội dung của tất cả các tế bào trong một bảng. Đọc / ghi đơn. 39
- Trả về một bộ sƣu tập dòng đại diện cho tất cả các Rows hàng bảng trong một bảng. Read-only. Trả về một đối tƣợng đổ bóng đề cập đến các định Shading dạng bóng cho các đối tƣợng quy định. Trả về hoặc thiết lập khoảng cách (điểm) giữa các tế Spacing bào trong một bảng. Đọc / ghi đơn. Trả về hoặc thiết lập phong cách cho bảng quy định. Style Đọc / viết biến thể. Trả về hoặc thiết lập các hƣớng, trong đó Microsoft TableDirection Word tế bào đơn đặt hàng trong bảng quy định. Đọc / ghi WdTableDirection. Trả về một bộ sƣu tập bảng đại diện cho tất cả các Tables bảng lồng nhau trong bảng quy định. Read-only. Trả về hoặc đặt số lƣợng của không gian (bằng TopPadding điểm) để thêm phía trên nội dung của tất cả các tế bào trong một bảng. Đọc / ghi đơn. True nếu tất cả các hàng trong một bảng có cùng số Uniform cột. Read-only Boolean. Bảng 10: Danh sách các thuộc tính của bảng VI. HỆ THỐNG GHI HOẠT ĐỘNG CỦA MICROSOFT WORD 1. Mô hình phân rã chức năng 2. Các mô đun trong chƣơng trình Trong phần này chúng tôi trình bày các mô đun đƣợc sử dụng trong chƣơng trình: 40
- a. Mô đun ghi các hoạt động của Word Các hoạt động của MS Word đƣợc chia thành các nhóm sau: + Nhóm thao tác với vùng văn bản: Mọi thao tác thực hiện trên vùng văn bản đƣợc Word theo dõi thông qua sự kiện Microsoft.Office.Interop.Word.ApplicationEvents4_W indowSelectionChangeEventHandler(oWord_WindowSelection Change); Sự kiện WindowSelectionChangeEventHandler sẽ gọi hàm oWord_WindowSelectionChange thực hiện. Chúng ta cần dõi theo sự biến đổi của tài liệu Word thì mọi câu lệnh đƣợc thực thi trong hàm này. + Nhóm thao tác với các nút lệnh Các thao tác thực hiện trên thanh nút lệnh (CommandBars) đƣợc Word theo dõi qua sự kiện _CommandBarsEvents_OnUpdateEventHandler(Command Bars_OnUpdate); + Nhóm còn lại: Gồm rất nhiều các sự kiện mà MS Word cần theo dõi để biết hoạt động của ngƣời dùng đồng thời tƣơng tác với ngƣời dùng đƣợc giới thiệu trong các bảng ở phần trên. Các hoạt động của ngƣời dùng cũng nhƣ trạng thái của MS Word đƣợc thông báo ra màn hình của chƣơng trình chính, đặc biệt có thể đƣợc lƣu lại theo dạng tệp văn bản (text). b. Mô đun ghi các thao tác của bàn phím Những hoạt động của ngƣời dùng tác động lên bàn phím đƣợc mô đun KeyboardHook ghi lại các sự kiện nhấn chuột, thả chuột, kéo thả, : #region Events public event KeyEventHandler KeyDown; public event KeyEventHandler KeyUp; public event KeyPressEventHandler KeyPress; #endregion [StructLayout(LayoutKind.Sequential)] protected class KeyboardHookStruct { public int vkCode; public int scanCode; public int flags; public int time; 41
- public int dwExtraInfo; } Phần thứ 2 trong mô đun này là mô phỏng lại các thao tác với bàn phím. Toàn bộ thao tác với bàn phím đƣợc ghi vào danh sách. c. Các mô đun ghi thao tác của chuột Hoạt động của chuột đƣợc theo dõi thông qua các sự kiện nhấn, nhả, nút chuột giữa và thao tác cuộn chuột cùng với thời gian và tọa độ của con trỏ chuột, Danh sách các sự kiện cần theo dõi: #region Events public event MouseEventHandler MouseDown; public event MouseEventHandler MouseUp; public event MouseEventHandler MouseMove; public event MouseEventHandler MouseWheel; public event EventHandler Click; public event EventHandler DoubleClick; #endregion thông qua hai hàm private MouseButtons GetButton(Int32 wParam) { switch (wParam) { case WM_LBUTTONDOWN: case WM_LBUTTONUP: case WM_LBUTTONDBLCLK: return MouseButtons.Left; case WM_RBUTTONDOWN: case WM_RBUTTONUP: case WM_RBUTTONDBLCLK: return MouseButtons.Right; case WM_MBUTTONDOWN: case WM_MBUTTONUP: case WM_MBUTTONDBLCLK: return MouseButtons.Middle; default: return MouseButtons.None; } } private MouseEventType GetEventType(Int32 wParam) { switch (wParam) { case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: case WM_MBUTTONDOWN: return MouseEventType.MouseDown; case WM_LBUTTONUP: case WM_RBUTTONUP: case WM_MBUTTONUP: return MouseEventType.MouseUp; 42
- case WM_LBUTTONDBLCLK: case WM_RBUTTONDBLCLK: case WM_MBUTTONDBLCLK: return MouseEventType.DoubleClick; case WM_MOUSEWHEEL: return MouseEventType.MouseWheel; case WM_MOUSEMOVE: return MouseEventType.MouseMove; default: return MouseEventType.None; } } Tƣơng tự nhƣ đối với bàn phím trong chƣơng trình có mô đun mô phỏng lại các hoạt động của chuột trong khoảng thời gian đã ghi. VII. THỰC NGHIỆM 1. Cấu hình phần cứng Chƣơng trình thử nghiệm đƣợc thực hiện chạy trên máy tính có cấu hình khác nhau và đều đáp ứng đƣợc yêu cầu: Cấu hình phần cứng và phần mềm Stt Ghi chú (Thông số chính) Main Foxconn, Ram 1GB, CPU P4 2,66 GHz, HDD 80 GB. 1 Đạt Windows XP - SP3. Office 2003 Main Foxconn, Ram 2GB, CPU Dual Core 3,0 GHz, HDD 2 160 GB. Đạt Windows XP - SP3. Office 2007 Main Foxconn, Ram 4GB, CPU Core E5700, HDD 320 GB. 3 Đạt Window 7. Office 2010. 43
- 2. Thực nghiệm ghi các hoạt động của Microsoft word Giao diện chƣơng trình chính Mở tài liệu mới Hiển thị kết quả Ghi thao tác chuột và bàn phím Mô phỏng thao tác chuột và bàn phím Ghi ra tệp text Dừng ghi chuột và bàn phím Hình 15: Giao diện chƣơng trình Chƣơng trình khi khởi động mở ngay tài liệu sample.doc có sẵn trong thƣ mục mặc định. Ngoài ra có thể mở tài liệu khác để kiểm tra. : Mở tài liệu khác với tài liệu mặc định. : Ghi các thao tác chuột và bàn phím. : Dừng thao tác ghi. : Mô phỏng thao tác chuột và bàn phím. : Ghi ra tệp text. : Thoát chƣơng trình. 44
- Hình 16: Kết quả đƣợc ghi ra tệp text VIII. ĐÁNH GIÁ KẾT QUẢ 1. Mục tiêu đạt đƣợc Từ việc thực hiện đề tài: “NGHIÊN CỨU PHƢƠNG PHÁP GHI NHẬN CÁC HOẠT ĐỘNG CỦA MICROSOFT WORD” nhóm tác giả đã đƣa ra giải pháp ghi lại hoạt động của MS Word và đạt đƣợc một số kết quả sau: - Xây dựng đƣợc các mô đun ghi hoạt động của MS Word. - Tài liệu tham khảo về kỹ thuật ghi nhận hoạt động của Ms Word, đồng thời đƣa ra đƣợc tài liệu về kỹ thuật lập trình nhúng ứng dụng vào MS Office, kỹ thuật lập trình. - Kỹ thuật hook thông điệp của chuột và bàn phím. - Kỹ thuật mô phỏng thao tác chuột và bàn phím. 45
- 2. Hạn chế Đề tài đã đƣa ra đƣợc giải pháp ghi nhận các hoạt động của MS Word, tuy nhiên vẫn còn một số hạn chế nhƣ: - Số lƣợng các hoạt động của MS Word chƣa ghi đƣợc nhiều. - Chƣơng trình cần kỹ thuật lập trình tốt hơn. - Tài liệu tham khảo còn hạn chế. 3. Kết luận Kết quả của Đề tài đáp ứng đƣợc mục tiêu đã đăng ký và khẳng định có thể xây dựng đƣợc bài thi hoặc học chƣơng trình tin học đại cƣơng theo hình thức này. 46
- TÀI LIỆU THAM KHẢO Tiếng Việt [1] Sổ tay phương pháp giảng dạy và đánh giá, trƣờng đại học Nha Trang, 77 trang, 2006. [2] Lƣu Xuân Mới, Lý luận dạy học đại học, NXB Giáo dục, Hà Nội, 2000. [3] Đặng Vũ Hoạt, Hà Thị Đức, Lý luận dạy học đại học, NXB Đại học Sƣ phạm, Hà Nội, 2009. [4] Phạm Công Ngô, Lập trình C# từ cơ bản đến nâng cao, NXB GD, 242 trang , 2007. [5] Nguyễn Tiến Đức, Ứng dụng phương pháp mô phỏng trong dạy học thực hành ngành điện tự động hóa tại trường CĐCN Nam Định, Luận văn Thạc sĩ, 115 trang, 2007. [6] Phạm Hữu Truyền, Xây dựng phần mềm mô phỏng trong dạy học lý thuyết chuyên môn ngành động lực, Luận văn Thạc sĩ, 108 trang, 2006. [7] Nguyễn Công Hiền, Nguyễn Phạm Thục Anh, Mô hình hóa hệ thống và mô phỏng, NXB KHKT, 2006, 206 trang. Tiếng Anh [8] Eric Carter, Eric Lippert, Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath, Addison Wesley Professional, 2005, p 1008. [9] www.msdn.com [10] www.codeproject.com 47