Trang MÔN : HỆ ĐIỀU HÀNH Bài thực hành số 1.2 : Viết phần mềm kích hoạt/dừng process I Mục tiêu : Giúp SV làm quen với việc lập trình ₫ể kích hoạt/dừng process II Nội dung : Xây dựng chương trình nhỏ cho phép người dùng chọn file khả thi cần chạy, kích hoạt chạy dừng/xóa cần thiết III Chuẩn ₫ầu : Sinh viên nắm vững sử dụng thành thạo class Process NET ₫ể quản lý process Sinh viên hiểu rõ cách kích hoạt/dừng process ₫ược trình bày silde giảng : process ₫ang chạy kích hoạt tự ₫ộng process khác chạy cần giết chết process khác IV Qui trình : Chạy VS Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project Mở rộng mục Visual C# TreeView "Project Types", chọn mục Windows, chọn icon "Windows Form Application" listbox "Templates" bên phải, thiết lập thư mục chứa Project listbox "Location", nhập tên Project vào textbox "Name:" (td ProcessManager), click button OK ₫ể tạo Project theo thông số ₫ã khai báo Form ₫ầu tiên ứng dụng ₫ã hiển thị cửa sổ thiết kế Hãy chọn Form ₫ể hiển thị cửa sổ thuộc tính (thường góc phải hình), duyệt tìm thuộc tính Text danh sách hiệu chỉnh nội dung thuộc tính thành "Quản lý process" Chuỗi văn ₫ược hiển thị title bar Form ứng dụng Việc thiết kế chi tiết form trình lặp thao tác : tạo mới/xóa/hiệu chỉnh thuộc tính/tạo hàm xử lý kiện cho ₫ối tượng giao diện cần dùng form Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox ₫ể hiển thị (thường (Auto Hide) nằm góc phải cửa nằm bên trái hình) Click chuột vào button sổ ToolBox ₫ể chuyển chế ₫ộ hiển thị thường trực Duyệt tìm phần tử Button (trong nhóm Common Controls), chọn nó, dời chuột góc trái form vẽ với kích thước mong muốn Xem cửa sổ thuộc tính Button vừa vẽ, duyệt tìm hiệu chỉnh thuộc tính Text = "Browse…", duyệt tìm thay ₫ổi thuộc tính (Name) = btnBrowse Duyệt tìm phần tử TextBox (trong nhóm Common Controls), chọn nó, dời chuột phía bên phải Button vừa vẽ vẽ TextBox với kích thước mong muốn Xem cửa sổ thuộc tính TextBox vừa vẽ, duyệt tìm hiệu chỉnh thuộc tính (Name) = txtPath Lặp lại bước ₫ể vẽ thêm button bên phải TextBox với thuộc tính Text = "Start", (Name) = btnStart Duyệt tìm phần tử Label (trong nhóm Common Controls), chọn nó, dời chuột button Browse vẽ với kích thước mong muốn Xem cửa sổ thuộc tính Label vừa vẽ, duyệt tìm hiệu chỉnh thuộc tính Text = "Các process ₫ã ₫ược kích hoạt ₫ang chạy :" 10 Duyệt tìm phần tử ListBox (trong nhóm Common Controls), chọn nó, dời chuột Label vẽ bước vẽ với kích thước mong muốn Xem cửa sổ thuộc tính ListBox vừa vẽ, duyệt tìm hiệu chỉnh thuộc tính (Name) = lbOutput 11 Lặp lại bước ₫ể vẽ thêm button bên trái ListBox với thuộc tính Text = "Refresh", (Name) = btnRefresh SinhVienZone.com https://fb.com/sinhvienzonevn Trang 12 Lặp lại bước ₫ể vẽ thêm button bên phải ListBox với thuộc tính Text = "Stop", (Name) = btnStop Sau thiết kế xong, Form có dạng sau : 13 Dời chuột button btnBrowse, ấn kép chuột vào ₫ể tạo hàm xử lý kiện Click chuột cho button, cửa sổ mã nguồn hiển thị ₫ể ta bắt ₫ầu viết code cho hàm Cách tổng quát ₫ể tạo hàm xử lý kiện chọn ₫ối tượng btnBrowse, cửa sổ thuộc tính hiển thị, click icon ₫ể hiển thị danh sách kiện ₫ối tượng, duyệt tìm kiện quan tâm (Click), ấn kép chuột vào comboBox bên phải kiện Click ₫ể máy tạo tự ₫ộng hàm xử lý cho kiện Cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : private void btnBrowse_Click(object sender, EventArgs e) { //tạo form duyệt chọn file khả thi cần chạy OpenFileDialog dlg = new OpenFileDialog(); //hiển thị form duyệt chọn file khả thi cần chạy DialogResult ret = dlg.ShowDialog(); //kiểm tra ₫ịnh người dùng, người dùng chọn OK ghi nhận tên file if (ret == DialogResult.OK) txtPath.Text = dlg.FileName; } 14 Dời chuột button btnStart, ấn kép chuột vào ₫ể tạo hàm xử lý kiện Click chuột cho button, cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : private void btnStart_Click(object sender, EventArgs e) { //tạo ₫ối tượng quản lý Process Process myProcess = new Process(); try { //thiết lập ₫ường dẫn file cần chạy myProcess.StartInfo.FileName = txtPath.Text; //kích hoạt process myProcess.Start(); //hiển thị danh sách process ₫ang chạy DisplayProcess(); } catch (Exception ex) { MessageBox.Show(ex.Message); } SinhVienZone.com https://fb.com/sinhvienzonevn Trang } 15 Dời chuột button btnStop, ấn kép chuột vào ₫ể tạo hàm xử lý kiện Click chuột cho button, cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : private void btnStop_Click(object sender, EventArgs e) { //xác ₫ịnh tên, ID process ₫ang ₫ược chọn ₫ể xóa String[] param = lbOutput.SelectedItem.ToString().Split(','); //tìm ₫ối tượng quản lý process có ID xác ₫ịnh Process proc = Process.GetProcessById(Int32.Parse(param[1])); //xóa process proc.Kill(); } 16 Dời chuột button btnRefresh, ấn kép chuột vào ₫ể tạo hàm xử lý kiện Click chuột cho button, cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : private void btnRefresh_Click(object sender, EventArgs e) { //hiển thị lại danh sách process ₫ang chạy hành DisplayProcess(); } 17 Dời chuột ₫ầu class Form1 thêm lệnh ₫ịnh nghĩa thuộc tính hàm dịch vụ cần dùng sau : void DisplayProcess() { //xóa nội dung cũ ListBox lbOutput.Items.Clear(); //tìm danh sách process ₫ang chạy Process[] plist = Process.GetProcesses(); //hiển thị tên, ID process foreach (Process process in plist) { lbOutput.Items.Add(process.ProcessName + ", " + process.Id ); } } 18 Hiệu chỉnh lại hàm khởi tạo Form theo nội dung sau : public Form1() { InitializeComponent(); //hiển thị danh sách process ₫ang chạy DisplayProcess(); } 19 Dời chuột ₫ầu file mã nguồn Form1 thêm lệnh using sau : using System.Diagnostics; 20 Chọn menu Debug.Start Debugging ₫ể dịch chạy thử ứng dụng, form chương trình hiển thị hiển thị y thiết kế 21 Hãy click chuột vào button Browse, cửa sổ duyệt chọn file hiển thị, duyệt chọn file khả thi (*.exe) cần chạy Khi cần kích chạy thật sự, click chuột vào button Start 22 Lặp lại bước 21 nhiều lần ₫ể chạy nhiều ứng dụng khác 23 Khi cần xóa chương trình ₫ang chạy nào, chọn Listbox click chuột vào button Stop SinhVienZone.com https://fb.com/sinhvienzonevn Trang 24 Khi cần hiển thị lại danh sách process ₫ang chạy hành, click chuột vào button Refresh 25 Lặp lại bước 21, 23, 24 theo ý thích ₫ể kiểm tra việc kích hoạt xóa process SinhVienZone.com https://fb.com/sinhvienzonevn ... SinhVienZone .com https://fb .com/ sinhvienzonevn Trang 24 Khi cần hiển thị lại danh sách process ₫ang chạy hành, click chuột vào button Refresh 25 Lặp lại bước 21 , 23 , 24 theo ý thích ₫ể kiểm tra việc kích. .. chọn file khả thi (*.exe) cần chạy Khi cần kích chạy thật sự, click chuột vào button Start 22 Lặp lại bước 21 nhiều lần ₫ể chạy nhiều ứng dụng khác 23 Khi cần xóa chương trình ₫ang chạy nào,... 18 Hiệu chỉnh lại hàm khởi tạo Form theo nội dung sau : public Form1() { InitializeComponent(); //hiển thị danh sách process ₫ang chạy DisplayProcess(); } 19 Dời chuột ₫ầu file mã nguồn Form1