Thứ Sáu, 16/11/2007 08:25 (GMT+7)
|
|
Ý nghĩa của thông số dwThreadId khi gọi API Windows
|
|
|
|
Câu hỏi :
Để gọi được hàm API Windows có tên là SetWindowsHookEx trong module VB 6.0, phải dùng lệnh khai báo sau:
Declare Function SetWindowsHookEx Lib “user32” Alias “SetWindowsHookExA” (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Xin hỏi thông số dwThreadId trong lệnh trên có nghĩa gì?
Trả lời :
Hàm API SetWindowsHookEx() cho phép cài đặt thủ tục “hook” do người dùng viết vào dây chuyền hooks của Windows. Như lệnh khai báo ở trên, hàm SetWindowsHookEx() nhận 4 tham số:
- idHook xác định kiểu hook cần cài đặt (WH_KEYBOARD, WH_MOUSE...)
- lpfn là pointer đến thủ tục hook do người dùng viết.
- hmod là cán (handle) của thư viện *.dll chứa thủ tục hook.
- dwThreadId xác định định danh của thread mà thủ tục hook muốn hoạt động trên nó, nếu dwThreadId=0 thì thủ tục hook sẽ hoạt động với mọi thread đang chạy.
Tóm lại thông thường ta sẽ truyền giá trị 0 cho tham số dwThreadID để thủ tục hook cần cài đặt sẽ hoạt động trên mọi ứng dụng của Windows.