[Programming] [Hỏi]Làm sao để biết một cửa sổ khác bị đóng hoặc mở từ App của mình. |
23/05/2008 19:40:04 (+0700) | #1 | 132334 |
Z0diac
Member
|
0 |
|
|
Joined: 25/04/2008 02:49:37
Messages: 21
Offline
|
|
Giả sử em có 1 ứng dụng tên là App được viết bằng VC8(VS 2005) .Trong ứng dụng này của em nó sẽ liệt kê ra các cửa sổ đang được mở trong Window bằng cách dùng EnumWindows và EnumWindowsProc.Bây giờ, nếu em đóng (hoặc mở thêm) 1 cửa sổ nào đó thì làm thế nào để ứng dụng App của em biết ngay lập tức(nếu có thể) hoặc trong một thời gian nhỏ nhất định nào đó để ứng dụng App của em loại bỏ tên ra khỏi danh sách các cửa sổ đang được mở. (hoặc thêm tên của nó vào danh sách các cửa sổ đang được mở - nếu trường hợp là có thêm 1 cửa sổ mới vừa được mở).
|
|
|
|
|
[Question] Re: [Hỏi]Làm sao để biết một cửa sổ khác bị đóng hoặc mở từ App của mình. |
23/05/2008 22:25:21 (+0700) | #2 | 132354 |
|
Z0rr0
Q+WRtaW5pc3RyYXRvc+g
|
Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
|
|
Có thể thử dùng kĩ thuật Windows message Hooking, chặn các thông điệp WM_CLOSE, WM_QUIT ở mức system (system wide), khi đó tất cả các yêu cầu đóng/thoát ứng dụng sẽ qua hàm hook (chặn) của mình.
Không nhớ Windows có cơ chế thông báo (notification) nào khác không, khi có thêm thông tin sẽ nói cho bồ. |
|
Hibernating |
|
|
|
[Question] Re: [Hỏi]Làm sao để biết một cửa sổ khác bị đóng hoặc mở từ App của mình. |
24/05/2008 11:57:05 (+0700) | #3 | 132499 |
Z0diac
Member
|
0 |
|
|
Joined: 25/04/2008 02:49:37
Messages: 21
Offline
|
|
Lúc đầu em định dùng cớ chế Timer, sau một khoảng thời gian nhất định sẽ quét lại, nếu có thay đổi gì về các cửa sổ thì cập nhập, nhưng cách này không được hay cho lắm, nên có lẽ em phải dùng kĩ thuật Windows message hooking như anh nói để chặn các thông điệp đó thôi. Nếu anh Z0rr0 còn cách nào khác thì nói cho em biết nhé. Cảm ơn anh đã trả lời. |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|