1. Trang chủ
  2. » Tất cả

nhập môn điện toán,nguyễn trung hiệp,dhbkhcm

2 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhập Môn Điện Toán
Trường học DHBKHCM (University of Technology and Education HCMC)
Chuyên ngành Computer Science
Thể loại Textbook
Thành phố Ho Chi Minh City
Định dạng
Số trang 2
Dung lượng 129,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

nhập môn điện toán,nguyễn trung hiệp,dhbkhcm Trang 1 MÔN NHẬP MÔN ĐIỆN TOÁN Bài thực hành số 3 2 Viết chương trình liệt kê các process đang chạy I Mục tiêu  Giúp SV tìm hiểu và biết cách lập trình tr[.]

Trang 1

Trang 1

MÔN : NHẬP MÔN ĐIỆN TOÁN

Bài thực hành số 3.2 : Viết chương trình liệt kê các process đang chạy

I Mục tiêu :

 Giúp SV tìm hiểu và biết cách lập trình truy xuất danh sách các Process đang chạy trên Windows

II Nội dung :

 Xây dựng chương trình nhỏ hiển thị danh sách các Process đang chạy trên Windows

III Chuẩn đầu ra :

 Sinh viên nắm vững và viết thành thạo các ứng dụng xử lý Process trên Windows

IV Qui trình :

1 Dùng VS Net, tạo 1 Project VC++ quản lý ứng dụng có 1 form giao diện, form này chứa

1 listbox hiển thị và 1 button

2 Code của hàm xử lý Click trên button như sau :

//ham tim va hien thi cac process dang chay len Listbox

void CListProcessesDlg::OnBnClickedOk()

{

// TODO: Add your control notification handler code here

//khai baáo caác biïën cêìn duâng

long lRet;

int i;

DWORD cbNeeded;

DWORD cProcess;

HANDLE hProcess;

DWORD cb = 2048*4;

HMODULE Modules[200];

WCHAR ModuleName[500];

int nSize = 500;

DWORD *lpIDProcess = new DWORD(2048);

int ret = 0;

//tòm danh saách caác ID process àang chaåy

if (EnumProcesses(lpIDProcess,cb,&cbNeeded)==0) return;

cProcess = cbNeeded/4;

lpIDProcess = new DWORD(cProcess);

cb = cbNeeded;

if (EnumProcesses(lpIDProcess,cb,&cbNeeded)==0) return;

//duyïåt tûâng process vaâ so saánh tïn gúåi nhúá cuãa noá

for (i = 0; i< cProcess;i++) {

//tòm handle cuãa process

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,

0, lpIDProcess[i]);

//kiïím tra

if (hProcess != 0) {

//tòm danh saách caác module cêëu thaânh process

lRet = EnumProcessModules(hProcess, Modules, 200, &cbNeeded); //nïëu coá, tòm tïn cuãa module àêìu tiïn trong danh saách

if (lRet != 0) {

lRet = GetModuleFileNameExW(hProcess, Modules[0], ModuleName, nSize);

if(lRet !=0) {

//neu co thi hien thi len Listbox m_list.AddString(ModuleName);

} } }

//àoáng handle cuãa process

lRet = CloseHandle(hProcess);

if (ret ==1) return;

}

Trang 2

Trang 2 return;

CDialogEx::OnOK();

}

3 Chọn menu Debug.Start Debugging để dịch và chạy ứng dụng Nếu có lỗi thì phân tích

và sửa lỗi

4 Nếu ứng dụng chạy, Click button OK, danh sách Process đang chạy sẽ hiển thị Nếu có lỗi thì phân tích và sửa lỗi

Ngày đăng: 25/11/2022, 16:28

🧩 Sản phẩm bạn có thể quan tâm