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

báo cáo bài tập lớn môn hệ điều hành xây dựng chương trình ứng dụng quản lý tắt nguồn khởi động lại tự động khóa và chế độ ngủ đông trên máy tính windows

31 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

Thông tin cơ bản

Tiêu đề Xây dựng chương trình ứng dụng quản lý tắt nguồn/khởi động lại tự động, khóa và chế độ ngủ đông trên máy tính Windows
Tác giả Nguyễn Thị Loan, Đào Duy Đán, Phạm Lê Dũng, Lê Đức Thắng
Người hướng dẫn TS. Phạm Thanh Bình
Trường học Trường Đại học Thủy lợi, Khoa Công nghệ Thông tin
Chuyên ngành Hệ điều hành
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 2 MB

Nội dung

Hệ điều hành cung cấp các phương thức để tắt nguồn / khởi động lại máy tính, khóa và ngủ đông tạm ngưng các tiến trình hiện tại để máy tính về chế độ nguồn điện thấp.. Nên nhóm em chọn đ

Trang 1

TRƯỜNG ĐẠI HỌC THỦY LỢI

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN

MÔN HỆ ĐIỀU HÀNH

ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG QUẢN LÝ TẮT NGUỒN / KHỞI ĐỘNG LẠI TỰ ĐỘNG, KHÓA VÀ CHẾ ĐỘ NGỦ ĐÔNG

TRÊN MÁY TÍNH WINDOWS

Giảng viên hướng dẫn : TS Phạm Thanh Bình

Nhóm sinh viên thực hiện :

Trang 2

Hà Nội, 4/2022 MỤC LỤC

MỤC LỤC

MỞ ĐẦU 3

1 Giới thiệu 3

2 Công cụ sử dụng 3

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH VÀ HÀM API TRÊN HỆ ĐIỀU HÀNH WINDOWS 5

1.1 Tổng quan về hệ điều hành windows 5

1.2 Tổng quan về tiến trình 5

1.2.1 Tiến trình là gì? 5

1.2.2 Chương trình ví dụ về tiến trình 6

1.3 Hàm API trên hệ điều hành windows 8

1.3.1 Hàm API là gì? 8

1.3.2 Một số hàm API trên hệ điều hành widnows 8

CHƯƠNG 2: CHƯƠNG TRÌNH ỨNG DỤNG HỖ TRỢ HỆ ĐIỀU HÀNH VÀ THỰC NGHIỆM 10

2.1 Giới thiệu bài toán chương trình ứng dụng 10

2.2 Giải thuật của bài toán 10

2.3 Mã nguồn chương trình ứng dụng và thực nghiệm 14

2.4 Hình ảnh màn hình thực nghiệm chương tình 23

CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 30

3.1 Kết luận 30

3.2 Hướng phát triển 30

TÀI LIỆU THAM KHẢO 31

2

Trang 3

MỞ ĐẦU

1 Giới thiệu

Hệ điều hành là một hệ chương trình hoạt động giữa người dùng và phần cứng củamáy tính Từ đó, cung cấp một môi trường để người sử dụng có thể thi hành các chương trình làm cho máy tính dễ sử dụng hơn, thuận tiện và hiệu quả Hệ điều hành cung cấp các phương thức để tắt nguồn / khởi động lại máy tính, khóa và ngủ đông tạm ngưng các tiến trình hiện tại để máy tính về chế độ nguồn điện thấp Nên nhóm

em chọn đề tài “XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG QUẢN LÝ TẮT NGUỒN / KHỞI ĐỘNG LẠI TỰ ĐỘNG, KHÓA VÀ CHẾ ĐỘ NGỦ ĐÔNG TRÊN MÁY TÍNH WINDOWS” dùng các hàm API để mô phỏng cách máy tính

làm việc

2 Công cụ sử dụng

Ngôn ngữ lập trình: C#

Công cụ lập trình: Visual Studio 2019

Nội dung bố cục của báo cáo được trình bày trong 3 chương:

Chương 1 : Tổng quan về hệ điều hành và hàm API trên hệ điều hành windown.Chương này trình bày các khái niệm tổng quan logic về hệ điều hành windows Từ

đó, giới thiệu về tiến trình trong hệ điều hành widnows, một số hàm API và công dụng của hàm API trên windows

Chương 2: Chương trình ứng dụng hỗ trợ hệ điều hành và thực nghiệm

Chương này trình bày các khái niệm, trình bày bài toán, giải thuật cho chương trình Tắt nguồn / Khởi động lại máy tính, Khóa, Ngủ đông máy tính Từ đó đưa ra đầy

đủ mã nguồn và chú thích cho từng module chức năng và hình ảnh thực nghiệm của ứng dụng

3

Trang 4

Chương 3: Kết luận và hướng phát triển.

Chương này đưa ra kết luận về những gì đã làm được và rút ra bài học định hướng phát triển ứng dụng cho ứng dụng hỗ trợ hệ điều hành trong tương lai

4

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH VÀ HÀM API

TRÊN HỆ ĐIỀU HÀNH WINDOWS

1.1 Tổng quan về hệ điều hành windows.

Định nghĩa: Hệ điều hành là một chương trình hay một hệ chương tình hoạt động giao tiếp giữa người dùng và phần cứng máy tính Cung cấp một môi trường để người sử dụng có thể thi hành chương trình, giúp ích cho người dùng trong công việc và cuộc sống Hệ điều hành bao gồm các chương trình dịch, hệ thống cơ sở sữ liệu, sử dụng tài nguyên của máy tính để giải quyết các yêu cầu người dùng

Hình 1: Hình ảnh minh họa sự so sánh giữa các loại hệ điều hành năm 2014

Hệ điều hành windows: Một hệ điều hành đa nhiệm có thể xử lý nhiều chương trình cùng một lúc Hệ điều hành được phân phối bởi Microsoft

1.2 Tổng quan về tiến trình

1.2.1 Tiến trình là gì?

Tiến trình là một thực thể đang thực hiện điều khiển một đoạn mã lệnh riêng không gian, địa chỉ, ngăn xếp và sở hữu một trạng thái giúp thông báo nó đang làm gì (đang chạy, đang chờ, đã đóng, )

5

Trang 6

Tiến trình có 4 thành phần quan trọng: CPU, bộ nhớ, File, Thiết bị nhập xuất.

1.2.2 Chương trình ví dụ về tiến trình

- Mã nguồn code:

+ Khai báo hàm hiển thị danh sách các tiến trình

private void loadProcessList()

Trang 7

private void btnStart_Click(object sender, EventArgs e)

{

string text = txtText.Text;

Process process = new

Process();

process.StartInfo.FileName = text; //Nhân chuỗi nhập

vào process.Start();

}

+ Xử lý sự kiện kill một tiến trình

private void btnStop_Click(object sender, EventArgs e)

Trang 8

1.3 Hàm API trên hệ điều hành windows

1.3.1 Hàm API là gì?

API là viết tắt của Application Programming Interface (giao diện lập trình ứng dung) phương thức kết nối với các thư viện và ứng dụng khác Nó chính là một phần mềm giao tiếp được sử dụng bởi các ứng dụng khác nhau giữa chương trình và hệ điều hành

1.3.2 Một số hàm API trên hệ điều hành widnows

- Các API được tổ chức trong 4 DLL của windows:

Trang 9

Thư viện quản lý Windows Thư viện này chứa các hàm xử lý menu, định giờ,truyền tin, tập tin và nhiều phần không được hiển thị khác của Windows.

Ta có thể tìm các tập tin này trong thư mục \Windows\system Ngoài ra, còn có các DLL

nhỏ hơn, cũng được dùng phổ biến để cung cấp các dịch vụ đặc biệt cho ứng dụng.Trên đây là các tên DLL 32 bit Phiên bản VB4 là bản cuối cùng còn hỗ trợ 16 bit

Một số hàm API:

- Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long

Công dụng:Đưa ra chỉ số cửa sổ popup đang tồn tại trên màn hình

Trị trả về: Integer ~ True (Khác zero) nếu có cửa sổ popup

- Declare Function AdjustWindowRectEx Lib "user32" Alias

"AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByValbMenu As Long, ByVal dwEsStyle As Long) As Long

Công dụng: Điều chỉnh cửa sổ khi có vùng làm việc client (Không tính kích thước của thanh tiêu đề, đường viền và các phần thêm) được khai báo, khi biết kiểu cửa sổ

Tham số kèm: LpRect Hình chữ nhật chứa vùng làm việc client DwStyle Kiểu cửa sổ BMenu Đưa giá trị True (Khác zero) nếu cửa sổ có trình đơn DwEsStyle kiểu cửa sổ mở rộng

9

Trang 10

CHƯƠNG 2: CHƯƠNG TRÌNH ỨNG DỤNG HỖ TRỢ HỆ ĐIỀU

HÀNH VÀ THỰC NGHIỆM

2.1 Giới thiệu bài toán chương trình ứng dụng.

- Chương trình quản lý tự động tắt nguồn / khởi động lại, khóa và chế độ ngủ đông cho máy tính cho phép người dùng máy tính thực hiện việc đặt thời gian tự động tắt nguồn / khởi động lại 1 cách nhanh chóng, khóa màn hình máy tính để tránh việc truy cập trái phép vào máy tính hoặc cho máy tính về chế độ ngủ đông để tiệntrong việc di chuyển máy tính

- Nguyên tắc chung của chương trình là dùng những hàm API liên quan đến quản trịthiết bị có sẵn trên Window để thực hiện những công việc trên

- Dùng những hàm để tính thời gian tự động tắt nguồn / khởi động lại và hủy bỏ việc tự động đó

10

Trang 11

Từ đó, chương trình sẽ sử dụng hỗ trợ hàm API trên hệ điều hành Windows tiến trình của chương trình và thực hiện việc tắt nguồn / khởi động lại, khóa và chế độ ngủ đôngcho máy tính.

2.2 Giải thuật của bài toán.

1 Tắt nguồn.

Đầu vào: Sự kiện người dùng có thể chỉnh thời gian tự động tắt nguồn trên giao diện

(nếu người dùng không chỉnh thì máy tính sẽ tắt nguồn ngay lập tức) và nhấn vào shutdown

Đầu ra: Cho phép người dùng thiết lập thời gian tắt nguồn tự động cho máy tính.

Các bước tiến hành:

Bước 1: Người dùng chọn thời gian tắt nguồn trên giao diện

Bước 2: Người dùng nhấn nút SHUTDOWN

Bước 3: Khai báo sử dụng chức năng hàm xử lý cấp quyền SHUTDOWN 1 cách an toàn trên tiến trình hiện tại

Bước 4: Gọi hàm xử lý tắt nguồn theo thời gian đã quy định của người dùng.Bước 5: Trả về kết quả cho người dùng và thực hiện đếm ngược thời gian tắt nguồn máy tính

2 Khởi động lại.

Đầu vào: Sự kiện người dùng có thể chỉnh thời gian tự động khởi động lại trên giao diện (nếu người dùng không chỉnh thì máy tính sẽ khởi động lại ngay lập tức) và nhấnvào RESTART

Đầu ra: Cho phép người dùng thiết lập thời gian khởi động lại tự động cho máy tính.

11

Trang 12

Các bước tiến hành:

Bước 1: Người dùng chọn thời gian khởi động lại trên giao diện

Bước 2: Người dùng nhấn nút RESTART

Bước 3: Khai báo sử dụng chức năng hàm xử lý cấp quyền RESTART 1 cách an toàn trên tiến trình hiện tại

Bước 4: Gọi hàm xử lý khởi động lại theo thời gian đã quy định của người dùng.Bước 5: Trả về kết quả cho người dùng và thực hiện đếm ngược thời gian khởi động lại máy tính

3 Tắt nguồn và cập nhật.

Đầu vào: Sự kiện người dùng có thể chỉnh thời gian tự động tắt nguồn và cập nhật

trên giao diện (nếu người dùng không chỉnh thì máy tính sẽ tắt nguồn và cập nhật ngay lập tức) và nhấn vào shutdown and update

Đầu ra: Cho phép người dùng thiết lập thời gian tắt nguồn và cập nhật tự động cho

máy tính

Các bước tiến hành:

Bước 1: Người dùng chọn thời gian tắt nguồn và cập nhật trên giao diện

Bước 2: Người dùng nhấn nút SHUTDOWN AND UPDATE

Bước 3: Khai báo sử dụng chức năng hàm xử lý cấp quyền SHUTDOWN 1 cách an toàn trên tiến trình hiện tại

Bước 4: Gọi hàm xử lý tắt nguồn và cập nhật theo thời gian đã quy định của người dùng

12

Trang 18

+ Khai báo hàm để thiết lập tắt máy / khởi động lại / tắt máy và cập nhật lại máy tính của người dùng.

+ Giải thích tham số:

lpMachineName: Tên máy tính sẽ được tắt

lpMessage: Tin nhắn sẽ được hiển thị trên thông báo tắt nguồn.dwGracePeriod: Thời gian để máy tính tắt máy / khởi động lại / tắt máy

+ Khai báo hàm API xử lý việc thiết lập Hiberate hay Sleep cho máy tính.+ Giải thích tham số:

Hiberate: biến boolean để kiểm tra việc Hiberate hay Sleep True là Hiberate và False là Sleep

forceCritical: Tham số này không có hiệu lực

disableWakeEvent: Tham số true thì hệ thống sẽ vô hiệu hóa tất cả các

sự kiện đang chạy Nếu là false thì bất kỳ sự kiện nào đang chạy vẫn sẽ được bật

- Các biến được sử dụng trong các hàm

internal const int SE_PRIVILEGE_ENABLED = 0x00000002;

+ Biến sử dụng để bật quyền SHUTDOWN cho tiến trình trong cấu trúc TokPriv1Luid để sử dụng trong các hàm khác

internal const int TOKEN_QUERY = 0x00000008;

18

Trang 19

+ Biến sử dụng trong hàm OpenProcessToken với mục đích truy vấn mã thông báo quyền truy cập.

internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;

+ Biến sử dụng trong hàm OpenProcessToken dùng để bật quyền trong mã thông báo quyền truy cập

internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";+ Quyền SHUTDOWN mà hàm LookupPrivilegeValue dùng để tìm và cấp quyền cho tiến trình hiện tại

internal const UInt32 SHUTDOWN_INSTALL_UPDATES = 0x00000040;+ Biến được sử dụng như là cờ báo hiệu việc máy tính cần tắt nguồn và cập nhật các gói sẵn có trong máy tính

internal const int EWX_RESTART = 0x00000004;

+ Biến được sử dụng như là cờ báo hiệu việc máy tính cần khởi động lại.internal const UInt32 SHUTDOWN_POWEROFF = 0x00000008;

+ Biến được sử dụng như là cờ báo hiệu việc máy tính cần tắt nguồn

- Hàm xử lý việc tắt nguồn / khởi động lại / tắt nguồn và cập nhật:

private void DoExitWin(UInt32 flg, String tt)

{

timer1.Enabled = !timer1.Enabled; //bật chế độ đếm ngược thời gian của timer UInt32 time = (UInt32)thoiGian(); //lấy thời gian tắt nguồn tự động của người dùng nhập

bool ok;

TokPriv1Luid tp;

IntPtr hproc = GetCurrentProcess();

IntPtr htok = IntPtr.Zero; //IntPtr la con tro

19

Trang 20

ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid);

ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); InitiateShutdownA(System.Environment.MachineName, tt, time, flg, 0); }

+ Giải thích tham số:

Flg: Cờ báo việc việc máy tính cần làm là tắt nguồn / khởi động lại / tắtnguồn và cập nhật

Tt: Trạng thái hiển thị lên giao diện

- Hàm lấy thời gian người dùng cài đặt để máy tính tự động tắt nguồn / khởi động lại / tắt nguồn và cập nhật

public int thoiGian()

{

int Gio = (int)nUPH.Value;

int Phut = (int)nUPM.Value;

int Giay = (int)nUPS.Value;

int soGiay = Gio * 3600 + Phut * 60 + Giay;

return soGiay;

}

20

Trang 21

- Biến cục bộ dùng cho toàn hệ thống.

+ static int v = -2; //biến kiểm tra để cài đặt bộ đếm tự động trên giao diện.+ static string tt = ""; //biến trạng thái hiển thị lên giao diện

- Hàm xử lý sự kiện đếm ngược thời gian tự động

private void timer1_Tick(object sender, EventArgs e)

Trang 22

private void btnCancel_Click(object sender, EventArgs e)

{

label4.Text = "Trạng thái: "+tt + " đã bị hủy!"; //

string filename = "shutdown.exe"; //khai báo tìm trên file xử lý tiến tình shutdown.exe

string arguments = "-a"; //Thuộc tính để hủy lệnh shutdown

ProcessStartInfo startinfo = new ProcessStartInfo(filename, arguments); //Khai báo thông tin của hàm xử lý

22

Trang 23

Process.Start(startinfo); //Thực hiện hủy lệnh

timer1.Enabled = false; //Tắt bộ đếm ngược thời gian

SetSuspendState(true, true, true);

label4.Text = "Trạng thái: Máy tính đã về trạng thái Hibernate!";

SetSuspendState(false, true, true);

label4.Text = "Trạng thái: Máy tính đã về trạng thái Sleep!";

}

2.4 Hình ảnh màn hình thực nghiệm chương tình.

1 Giao diện chính của chương trình.

23

Trang 24

2 Chức năng SHUTDOWN

Chức năng Cancel Shutdown

24

Trang 25

3 Chức năng RESTART

Chức năng Cancel Restart

25

Trang 26

4 CHỨC NĂNG SHUTDOWN AND UPDATE

Chức năng Cancel Shutdown and Update

26

Trang 27

5 LOCK

6 HIBERNATE

27

Trang 28

Sau khi thoát khỏi chế độ Hibernate.

7 SLEEP

28

Trang 29

Sau khi thoát khởi chế độ SLEEP.

29

Trang 30

CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

3.1 Kết luận

Hiện nay cũng có nhiều ứng dụng hỗ trợ việc tắt nguồn và các thao tác liên quan

Và nhóm em đã áp dụng những kiến thức đó và những hàm API để viết lên chương trình quản lý SHUTDOWN 1 cách thuận tiện

Sau thời gian nghiên cứu và học hỏi, nhóm em đã xây dựng thành công chương trình quản lý tự động tắt nguồn / khởi động lại / tắt nguồn và cập nhật và Hibernate vàSleep hỗ trợ ngôn ngữ cho hệ điều hành Windows Với các chức năng tắt nguồn / khởiđộng lại / tắt nguồn và cập nhật và Hibernate và Sleep của máy tính Tuy nhiên chương trình chưa tránh khỏi việc có nhiều sai sót, nhóm em rất mong nhận được góp

ý từ Thầy Nhóm em chân thành cảm ơn Thầy nhiều!

3.2 Hướng phát triển

Chúng em sẽ hoàn thiện chương trình và bổ sung thêm 1 số tính năng cho chương trình Đồng thời, áp dụng kiến thức môn học để phát triển nhiều ứng dụng hơn nữa để hỗ trợ hệ điều hành Windows

30

Trang 31

TÀI LIỆU THAM KHẢO

[1] http://dhthuyloi.blogspot.com/2014/02/tai-lieu-he-ieu-hanh.html

[2] System Shutdown Functions - Win32 apps | Microsoft Docs [3] https://msdn.microsoft.com/en-us/library/

31

Ngày đăng: 15/05/2024, 18:45

HÌNH ẢNH LIÊN QUAN

Hình 1: Hình ảnh minh họa sự so sánh giữa các loại hệ điều hành năm 2014 - báo cáo bài tập lớn môn hệ điều hành xây dựng chương trình ứng dụng quản lý tắt nguồn khởi động lại tự động khóa và chế độ ngủ đông trên máy tính windows
Hình 1 Hình ảnh minh họa sự so sánh giữa các loại hệ điều hành năm 2014 (Trang 5)

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

TÀI LIỆU LIÊN QUAN

w