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

đề tài nghiện cứu xây dựng phần mềm tự động hướng dẫn sử dụng máy tính bằng việc mô phỏng tương tác của chuột và bàn phím thông qua hệ thống thông điệp của windows operator

22 0 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

Nội dung

nhiều phần mềm được viết ra giúp người đọc dễ hiểu, dễ dàng sử dụng thao tác với máy tính, và phần mềm Window Operator là 1 ví dụ.Với mong muốn tìm hiểu về sự tự động của phần mềm hỗ trợ

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂNVIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ

BÀI TẬP LỚN

MÔN CÔNG NGHỆ ĐA PHƯƠNG TIỆN

Đề tài nghiện cứu: Xây dựng phần mềm tự động hướng dẫn sử dụng máy tínhbằng việc mô phỏng tương tác của chuột và bàn phím thông qua hệ thống

thông điệp của Windows Operator.

GVHD: TS Phạm Minh HoànLớp HP: CNTT1149_01Nhóm Sinh viên: Nhóm 5

Trang 2

3.2 Mô t bài toán chi tềất đ nh thiềất kềấả ị 5

4.Tìm hi u vềề l p trình trong Windows và h thôấng thông đi p.ể ậ ệ ệ 5

Trang 3

Bảng phân công công việcST

LỜI MỞ ĐẦU

Cùng với sự phát triển của xã hội, máy vi tính đã bước vào từng góc của xã hộichúng ta, hơn nữa tác dụng của nó ngày càng được mở rộng, hiện nay nó đã trở thànhmột trợ thủ đắc lực cho cuộc sống cũng như công việc của mọi người.

Việc tính toán trong lĩnh vực khoa học kĩ thuật, trong một số phép tính phức tạpthuộc lĩnh vực khoa học kĩ thuật hiện đại nếu dùng não người để tính toán thì rất khóđể thực hiện, còn nếu dùng máy tính thì chúng ta không chỉ tiết kiệm được thời gianmà còn có những kết quả chính xác Xử lý các số liệu và công việc: điều này chủ yếulà dựa vào khả năng phân tích và suy đoán của máy tính để giúp con người phân tíchthống kê một số số liệu thực tế Kiểm tra tự động và điều khiển tự động trong rất nhiềulĩnh vực người ta đã sử dụng máy vi tính để thực hiện việc phân biệt và điều khiển tựđộng, ví dụ như điều khiển tự động trong việc phóng tàu vũ trụ, trong lĩnh vực nhỏhơn, người ta sử dụng để điều khiển việc định giờ, số thứ tự cho các loại điện trong giađình Ngày nay, máy tính vô cùng cần thiết và quan trọng trong đời sống của conngười.

Xã hội ngày càng hiện đại, công nghệ ngày càng phát triển vì thế máy tính càngđược sử dụng rộng rãi hơn bao giờ hết Tuy nhiên không phải đối tượng nào cũng biếtcách sử dụng máy tính một cách hiệu quả nhất ví dụ như người mới bắt đầu sử dụng,người có tuổi nhiều phần mềm được viết ra giúp người đọc dễ hiểu, dễ dàng sử dụng thao tác với máy tính, và phần mềm Window Operator là 1 ví dụ.

Với mong muốn tìm hiểu về sự tự động của phần mềm hỗ trợ người dùng, chúngem nhận thấy đây là đề tài vô cùng thú vị, thiết thực trong cuộc sống, chúng em muốnsử dụng vốn kiến thức được học, trau dồi trước đó được áp dụng thực tiễn nhóm chúng

em lựa chọn đề tài:”Xây dựng phần mềm tự động hướng dẫn sử dụng máy tínhbằng việc mô phỏng tương tác của chuột và bàn phím thông qua hệ thống thôngđiệp của Windows Operator.”

Mặc dù nhóm chúng em đã cố gắng tìm hiểu và hoàn thành bài tập trong phạm

Trang 4

chúng em kính mong nhận được sự phản hồi, đóng góp ý kiến của thầy TS Phạm MinhHoàn _ giảng viên bộ môn Công nghệ đa phương tiện và của quý bạn bè Chúng emxin chân thành cảm ơn!

Qua tìm hiểu và phân tích thiết kế nhóm chúng em đưa ra bản báo cáo với nhữngnội dung chính như sau để người đọc dễ dàng theo dõi

Phần 1: Mở đầuPhần 2: Nội dung

Chương I: Giới thiệu chung về đề tài Chương II: Xây dựng phần mềm

Chương III: Kết luận

Chương I Giới thiệu chung về đề tài1.Vấn đề chung

Như chúng ta đã thấy được, máy tính đóng vai trò vô cùng quan trọng, việcứng dụng công nghệ thông tin cho tất cả các lĩnh vực kinh tế, khoa học, giáo dục …đã đem lại những thành tựu to lớn, nâng cao cuộc sống con người Song việc sử dụngmáy tính 1 cách đơn giản, dễ dàng cho tất cả mọi người lại chưa hẳn là dễ dàng Vìthế khi thực hiện đề tài nhóm có đặt ra những tiêu chí như sau

- Dễ sử dụng đặc biệt với người mới bắt đầu.- Cung cấp chức năng đầy đủ

Trang 5

 Ý nghĩa lý luận và thực tiễn của đề tài:

- Giúp nhóm ứng dụng vốn kiến thức được học, hiểu rõ quy trình xây dựngphần mềm

- Giúp cho người sử dụng thuận tiện dễ dàng sử dụng

- Hiện nay trong thời kỳ covid nhiều học sinh đang trong độ tuổi cấp 1 chưathành thạo sử dụng máy tính, phần mềm này giúp các em có thể sử dụngmáy tính 1 cách hiệu quả và thành thục hơn

- Hiện nay ở các vùng quê xa thành phố những người con đi làm ăn xakhông thể ở bên ba mẹ thường xuyên Con mua máy tính cho ba mẹ ở quêđể liên lạc, giải trí ở quê phần mềm này giúp các phụ huynh dễ dàng làmquen với máy tính, giao diện khá đơn giản phù hợp với người lớn tuổi.- Một số đối tượng người sử dụng mới bắt đầu tiếp xúc với máy tính, trong

quá trình cần dùng máy tính cần tìm hiểu nhanh, đang làm việc, học tập thìcũng có thể thao tác chính xác cách sử dụng máy tính, mà không cần phảitra cứu google về cách sử dụng Điều đó thực sự tiện lợi hơn bao giờ hết.

Mô tả bài toán chi tiết định thiết kế

- Người dùng: khởi động hệ điều hành Windows Operator, xem bảng hướngdẫn tổng quan, tìm hiểu các ứng dụng, phần mềm thông qua tương tác giữachuột và bàn phím.

Trang 6

- Hệ thống: tiếp nhận các tín hiệu từ người dùng thông qua thao tác di chuộtvà đưa ra thông tin hướng dẫn tổng quát nhất cho người dùng: như tên, chứcnăng, cách mở các ứng dụng, phần mềm đó.

4.Tìm hiểu về lập trình trong Windows và hệ thống thông điệp.

4.1 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 trongbảng vector ngắt của DOS, nhưng nó thân thiện hơn ở chỗ cách gọi hàmAPI 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ọihẳ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(hợp ngữ) nữamà lập trình theo kiểu ngôn ngữ cấp cao, mọi hoạt động trong máy ở mứcthấp từ hàm API trở xuống thuộc phạm vi của Windows, và Windowskhô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áckhả 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óiWindows đã 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ốngchạy ổn định hơn, không bị treo do lỗi của ứng dụng, không thể xâmnhậ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ểnhoạ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 giaodiệ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 nguyên của Windows GDI làmột bộ phận của API, giao diện thiết bị đồhọa GDI (Graphic DeviceInterface) 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.4.2 Thông điệp và hệ thống thông điệp trong Windows

Trang 7

4.2.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ậ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ộtcửa sổ khác.

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ãn nhận diện mang tiền tố WM_được coilà 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ổ mẹ.

- Những nút lệnh: là thông điệp WM_COMMAND phát đi từ trình đơn, từ cácnú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ộtcông việc gì đó.

4.2.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 chính mình, chocác ứng dụng khác hoặc cho hệ thống.

Có 3 hàm Windows API để gửi thông điệp:a Hàm SendMessage:

LRESULT SendMessage(hwnd, uMsg, wParam, lPram)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ênLPARAM lParam; // thông số thông điệp thứ hai

Trang 8

- Hàm SendMessge gửi thông điệp tới một hay nhiều cửa sổ Hàm gọi thủ tụccửa sổ cho cửa sổ và không trở về cho đến lúc thủ tục cửa sổ đã xử lý xongthô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 PostMessageCú pháp:

BOOL PostMessage(hwnd, uMsg, wParam, lPram)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ênLPARAM lParam; // thông số thông điệp thứ hai

oHà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ấybằng cách gọi hàm SetMessage hay PeekMessage.

Giá trị trả về: trản về khác không nếu thành công, ngược lại 0.c Hàm SenDlgItemMessage:

Cú pháp:

LRESULT SenDlgItemMessage(hwnDlg, idDlgItem, uMsg, wParam,lParam)

HWND hwnDlg; // handle của hộp thoại

Int idDlgItem; // mã nhận diện ô điều khiển sẽ nhận thông điệpUINT uMsg; // thông điệp gửi đi

WPRAM wParam; // thông số thông điệp đầu tiênLPARAM lParam; // thông số thông điệp thứ hai

Trang 9

Hàm SenDlgItemMessage gửi một thông điệp tới một điều khiển trong hộpthoạ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.

4.2.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áchdù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ốihà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ơ đồ thông điệp:

Trang 10

- Nó mô tả đơn giản hóa quá trình xử lý thông điệp Thông điệp có thể bắtnguồ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ác thông điệp được đặt vào hàng đợi nhưthế nào:

Trang 11

- 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ácthreads 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úngcó 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ằnghàm SendMessage().

4.2.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 Windowsvận hành được Hệ thống và các ứng dụng khác sinh ra các thông điệp chomọi sự kiện xuất hiện trong hệ thống thông điệp của Windows sẽ cho phépWindows 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 Windowstrướ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ấtcả ứng dụng đều dùng chung một hàng đợi thông điệp, vì thế để các ứngdụng khác xử lý thông điệp, ứng dụng phải trả quyền điều khiển về choWindows mỗi khi nó có thể Với Windows 95 và Windows NT, điều nàykhô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 đượcdà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 messageWPARAM wPram; // được chuyển cho WndProc()LPARAM lPram; // được chuyển cho WndProc()DWORD time; // số mili giây từ lúc bắt đầuPOINT pt; // cấu trúc điểm POINT}

Trang 12

4.3 Giới thiệu lập trình Windows API

- Windows API (WinAPI, hay nhiều nơi vẫn dùng tên cũ là Win32 API) là các hàm thư viện và các định nghĩa khác (struct, enum,…) được Windows cung cấp cho người lập trình, để viết các ứng dụng trên nền Windows.- Hệ điều hành Windows là một phần mềm hệ thống, nó thao tác trực tiếp với phần cứng máy tính Các phần mềm ứng dụng khác chạy trên Windows không thao tác trực tiếp với phần cứng, mà luôn trung gian qua hệ điều hành Ví dụ khi gõ phím, hệ điều hành là nơi nhận tín hiệu và xử lý xem nó là phímgì, sau đó, hệ điều hành mới xác định xem phím được gõ trên ứng dụng nào, thì mới gởi tín hiệu đến ứng dụng đó để nó xử lý, thông qua các hàm bạn đã viết trong ứng dụng

- Windows API là giao diện lập trình nằm ngay trên nền Windows, cung cấp các hàm thao tác trực tiếp với hệ điều hành và phần cứng máy tính Các ứng dụng Windows sẽ thông qua Windows API để thao tác với máy tính

.Net vàWin32

Trang 13

- Windows API là cách gọi chung của Win16 API, Win32 API và gần đây là Win64 API Ở một số chỗ, người ta vẫn hay gọi Win32 API để chỉ lập trình Windows API Lý do là trước đây và thậm chí cho đến ngày nay, Windows 32 bit được sử dụng rộng rãi Tuy nhiên, khi nói đến Windows API hay Win32 API, bạn phải hiểu nó bao gồm cả Win64 API, vì các APIcủa Win64 hầu hết giống hệt Win32 API, chỉ có điểm khác chính ở kích thước con trỏ Ngoài ra, các ứng dụng viết từ Win32 API vẫn chạy tốt trên các máy 64 bit.

- Gần đây, Microsoft giới thiệu thêm WinRT (Windows Runtime Library, khác Windows RT cho các máy kiến trúc ARM nhé) cho các ứng dụng metro trên store Nhưng nó không thay thế hoàn toàn Windows API nhất là khi bạn viết các ứng dụng Desktop, hay cần thao tác trực tiếp với hệ thống.

- Windows API được viết chủ yếu bằng C Cách hiệu quả nhất để sử dụng Windows API là dùng C hoặc C++ Tuy nhiên, bạn cũng có thể sử dụng các ngôn ngữ khác như C#.NET, VB.NET, Delphi, thậm chí cả Java.

4.3.1 WINDOWS API VÀ NET FRAMEWORK

- Ngày nay, để viết các ứng dụng trên Windows nhanh chóng và hiệu quả, chúng tasử dụng NET Framework là chủ yếu .NET Framework cũng cung cấp các thư viện để viết ứng dụng trên nền Windows, và càng ngày càng làm được nhiều việc thay thế Windows API Nhưng nó khác Windows API ở các điểm chính:

 NET Framework chỉ là wrapper gọi lại các hàm Windows API, tức là, nếu bạn gọi một phương thức NET nào đó, nó sẽ gọi lại các hàm Windows API có chức năng tương ứng để thực hiện, chứ không thao tác trực tiếp đến hệ điều hành.

 Thông qua Mono, các ứng dụng viết trên NET Framework có thể chạy được trên Linux, Mac,… còn Windows API thì không.

 Vẫn có một số thao tác cấp thấp với hệ thống không làm được với NET Framework

4.3.2 THÀNH PHẦN CỦA WINDOWS API

Các hàm API có thể được chia thành một số loại chính:

Trang 14

 Base Services: thao tác với các tài nguyên trên Windows như hệ thống tập tin (file systems), các thiết bị, các tiến trình (processes), các luồng (threads), quản lý bộ nhớ,… Các hàm này nằm trong thư viện kernel32.dll.

 Advanced Services: truy xuất Windows registry, tắt, mở máy

tính, Windows service, tài khoản người dùng,… Các hàm này nằm trongthư viện dvapi32.dll.

 Graphics Device Interface: xuất dữ liệu đồ họa ra màn hình, máy in,… Các hàm này nằm trong thư viện gdi32.dll.

 User Interface: cung cấp các thành phần giao diện người dùng như form,nút, textbox, nhận tín hiệu chuột, bàn phím,… Các hàm này nằm trong thư viện shell32.dll, user32.dll, comctl32.dll, comdlg32.dll:

 Common Dialog Box Library: các hộp thoại cơ bản trong Windows mà hầu như ứng dụng nào cũng sử dụng, như hộp thoại mở file, lưu file,…

 Common Control Library: nút, status bars, progress bars, toolbars, tabs,…

 Windows Shell: thu tín hiệu chuột, bàn phím,… Network Services: các thao tác liên quan đến mạng Multimedia: thao tác với các thiết bị đa phương tiện

5 Tìm hiểu ngôn ngữ lập trình

5.1 Ngôn ngữ lập trình Python

- Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đanăng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Pythonđược thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngônngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới họclập trình và là ngôn ngữ lập trình dễ học; được dùng rộng rãi trong phát triểntrí tuệ nhân tạo Các dự án về ML/AI đều sử dụng ngôn ngữ Python bởiCode Python mang âm hưởng toán học và giống với lối đọc/hiểu của conngười thế nên nó giúp đơn giản hóa các vấn đề để lập trình viên tập trungvào AI, ML hơn so với các ngôn ngữ khác

II Xây dựng phần mềm 1 Biểu đồ.

Ngày đăng: 14/08/2024, 10:01

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN