- ' ###################
- ' # Dans une form nommée Form1
- ' ###################
- Private Sub Form_Load()
- HookForm1
- Show 0
- End Sub
-
- Private Sub Form_Unload(Cancel As Integer)
- UnHookForm1
- End Sub
-
- ' ###################
- ' # Dans un module
- ' ###################
-
- Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Public Const GWL_WNDPROC = (-4)
-
- Public Const WM_MOVE = &H3
-
- Public OldProc As Long
-
- Sub HookForm1()
- OldProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
- End Sub
-
- Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Select Case uMsg
- Case WM_MOVE
- Form1.Caption = "Heure du dernier déplacement : " & Time
- End Select
- WindowProc = CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam)
- End Function
-
- Sub UnHookForm1()
- Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, OldProc)
- End Sub
-
' ###################
' # Dans une form nommée Form1
' ###################
Private Sub Form_Load()
HookForm1
Show 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnHookForm1
End Sub
' ###################
' # Dans un module
' ###################
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOVE = &H3
Public OldProc As Long
Sub HookForm1()
OldProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_MOVE
Form1.Caption = "Heure du dernier déplacement : " & Time
End Select
WindowProc = CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam)
End Function
Sub UnHookForm1()
Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, OldProc)
End Sub