GUIRegisterMsg
Đăng ký một hàm-do-người-dùng-định-nghĩa cho Windows Message ID (WM_MSG) .
GUIRegisterMsg ( msgID, “function” )
Các tham số
msgID | Định danh thông điệp windows (Windows Message ID , Xem Appendix: Windows Message Codes). |
function | Tên của hàm sẽ được gọi khi thông điệp xuất hiện , sử dụng chuỗi rỗng để bỏ qua , không đăng ký. |
Giá trị trả về
Th. Công : | 1 |
Hỏng : | 0 |
Chú ý
!!! Để hàm do bạn định nghĩa có thể làm việc được , cần gán cho nó tối đa 4 tham số , ngược lại có thể nó sẽ không được gọi !!!
Ví dụ
Func MyUserFunction($hWndGUI, $MsgID, $WParam, $LParam)
…
EndFunc
hoặc
Func MyUserFunction($hWndGUI, $MsgID)
…
EndFunc
Khi người dùng gọi hàm thì 4 tham số sẽ mang những giá trị sau :
Vị trí | Tham số | Ý nghĩa |
1 | hWnd | Handle của GUI mà thông điệp sẽ xuất hiện |
2 | Msg | Định danh (ID) của thông điệp Windows |
3 | wParam | Tham số thông điệp đầu tiên (giá trị hex) |
4 | lParam | Tham số thông điệp thứ hai (giá trị hex) |
Ø Có thể đăng ký tối đa 256 hàm cho các thông điệp windows
Ø Theo mặc định , sau khi hàm người dùng kết thúc thì trình điều khiển thông điệp nội bộ của AutoIT sẽ tiếp tục làm việc. Điều đó sẽ không xảy ra nếu như lệnh Return trong hàm của bạn trả về một giá trị hoặc return mà không có giá trị theo sau.
Ø !!! Nếu bạn muốn AutoIT chạy trình điều khiển nội bộ đối với một thông điệp , thì hàm-người-dùng nên trả về biến $GUI_RUNDEFMSG (trong thư viện GUIConstantsEx.au3) !!!
Ø Ví dụ : khi bạn muốn hàm trở về sớm hơn so với tiến trình kết thúc của nó và tiếp tục chạy trình điều khiển thông điệp nội bộ
Ø Cẩn trọng : cản trở việc chạy một hàm-người-dùng đang thực thi một thông điệp cửa sổ với một lệnh như MsgBox() thì có thể đưa đến một cách chạy không mong đợi, hệ thống sẽ trở về nhanh như có thể !!!
Ø Vài control có sử dụng các định danh thông điệp Windows đặc biệt , cho nên việc đăng ký chúng không có hiệu quả. Ví dụ như : WM_CHAR, WM_KEYDOWN, WM_KEYUP được dùng bởi control edit.