-
03-06-2013, 03:54 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Làm thế nào để monitor windows process?
Mình đang cần viết một cái tool/dll nhỏ dùng để giám sát một process cụ thể nào đó trong windows.
Yêu cầu đơn giản chỉ là monitor xem cái process đó có đang chạy hay ko? Nếu process đó bị kill bởi bất kì lí do gì thì phải báo lại cho app.
Vd: app của mình đang chạy sẵn và nó sẽ giám sát nginx, bất cứ khi nào nginx chạy thì app sẽ detect và chuyển trạng thái nào đó (hiện thông báo, bật icon xanh...) và ngược lại khi tắt nginx thì app sẽ lại trở lại như cũ.
Mình có tìm hiểu sơ qua thì có vẻ sử dụng thuần túy Win32 API khá là phức tạp, trong Boost hình như có sẵn thư viện xử lý cái này. Do yêu cầu gấp quá nên mình ko còn nhiều thời gian nghiên cứu, mong ai đó chỉ cho mình hướng đi nhanh nhất có thể. Mình xin cám ơn [IMG]images/smilies/smile.png[/IMG]View more random threads:
- source IAT Hook bug with Release
- Cách truyền tham số cho hàm SHGetFileInfo
- Send key vào form ẩn trên Windows như thế nào?
- Làm quen với MFC
- sử dụng các hàm của dll sau khi inject vào applicaton đang chạy như thế nào ?
- Phân biệt giữa mô hình xử lý dùng multithread và dùng nhiều process.
- Xem source code của các hàm API chỗ nào?
- lập trình một ứng dụng hook đơn giản như thế nào?
- Hook API bằng Hàm Setwindowhook
- Xin hướng dẫn cách nhấn một Button để gọi thực thi chương trình khác
-
21-06-2013, 10:58 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
giải pháp dùng để khi 1 process bị ngắt mà nhận ra ngay thì mình không rõ, nhưng có một cách đơn giản là cứ sau 1 khoảng thời gian nhất định (5s chẳng hạn) bạn sẽ liệt kê lại process 1 lần để kiểm tra process còn sống hay không
bạn có thể tìm hiểu các hàm và ví dụ ở đây: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
cái này khá đơn giản nên mình nghĩ không cần thiết tới mức phải dùng boost
chúc bạn may mắn
-
21-06-2013, 04:00 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Sử dụng PsSetCreateProcessNotifyRoutine, API này cung cấp tất cả khả năng bạn muốn đấy!
-
22-06-2013, 09:15 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi dungcoi
ngoài ra, bạn có thể dùng 1 hàm khác, cũng tương đương
NtQuerySystemInformation với tham số SYSTEM_PROCESS_INFORMATION
PsSetCreateProcessNotifyRoutineEx và PsSetCreateProcessNotifyRoutine chỉ dùng được ở kernel mode
-
26-09-2013, 05:21 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình có giải pháp cho bạn chẳn hạn như lấy handle process để đưa vào hàm WaitForSingleObject.
Còn có thể GetExitCodeProcess để lấy exitcode process,nó trả về STILL_ALIVE là vẫn còn sống.
GetExitCodeProcess bạn để vào vòng while(true) để monitor.
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...