daigai

Well-Known Member
Link tải luận văn miễn phí cho ae Kết Nối
VB6: Lập trình tiện ích như "Task Manager"
Trong khi lập trình các ứng dụng, một số bạn sẽ gặp phải yêu cầu kiểm tra
hệ thống và liệt kê tất cả ứng dụng đang chạy (như tiện ích "Task Manager")
và trong một số trường hợp còn cần đến cách thức để "kill" các ứng dụng
đó. Bài viết sẽ trình bày cách hiện thực các yêu cầu này bằng VB6.
Một chương trình được kích hoạt từ 1 tập tin (file) khả thi *.exe nằm ở vị trí
xác định trên đĩa cứng. Khi chương trình chạy, nó trở thành tiến trình (process) trong máy, mỗi
process sẽ được nhận dạng bằng 1 tên nhận dạng (ID) ở dạng số nguyên. Một file khả thi có thể
được kích hoạt chạy nhiều lần để trở thành nhiều process khác nhau. Do đó, để nhận dạng
process, HĐH dùng định danh riêng (ID) của process. Tuy nhiên, người dùng thường nhận dạng
process bằng tên file khả thi của chương trình (nên dùng đường dẫn tuyệt đối của file khả thi để
tránh nhầm lẫn giữa các file chương trình nằm ở các thư mục khác nhau nhưng có cùng tên file).
Nếu đang lập trình trên HĐH tương thích với WinNT (NT, 2000, XP, Vista...), bạn có thể dùng
thư viện quản lý process có tên là PSAPI của Microsoft để duyệt các process đang chạy (thông
qua các hàm EnumProcesses, EnumProcessModule, OpenProcess, GetModuleFileNameEx...) và
xóa process theo yêu cầu. Sau đây là qui trình điển hình để viết 1 ứng dụng VB đơn giản giải
quyết các yêu cầu của bạn:
1. Chạy VB 6.0, tạo project loại "Standard EXE". Sau khi Form trống hiển thị, hãy thiết kế Form
có dạng sau:
Trong đó button "List Process" có tên là btnList, button "Kill
Process" có tên là btnKill, textbox nhập ID có tên là
txtProcessID, listbox để chứa danh sách các process có tên là
lbProcesses.
2. Nhấn đúp chuột vào button ListProcess để tạo thủ tục xử lý sự kiện click chuột trên button này
rồi viết code như sau:
'code cho Form ứng dụng
Option Explicit
'thủ tục xóa 1 process
Private Sub btnKill_Click()
Dim hProcess As Long
Dim retval As Long
'lấy handle của Process xác định bởi người dùng
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0, CLng(
txtProcessID.Text))
If hProcess <> 0 Then
'xóa process tương ứng
retval=TerminateProcess(hProcess, 0)
End If
End Sub

Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Last edited by a moderator:

Các chủ đề có liên quan khác

Top