To simulate a user clicking a button, the code you need is more advanced... First, you need to get the hWnd of the button using the FindWindowEx API call. And to do this, you need to know its caption, and class name (always Button). For example, the following code finds a button with a caption "OK" within frmMain. If you don't know the hWnd of the form it is in, you need to find that as well!
lObjhWnd = FindWindowEx(frmMain.hWnd, 0, "Button", "OK")
Don't forget that many buttons will have 'access' keys so that you can click them using the keyboard. For example, if a button has a line under the letter C in its caption, you can click it by pressing Alt+t. So, if its caption appears to be "Cancel", but there is a line under the C, its caption is actually "&Caption" (just like in VB).
SendMessage lObjhWnd, BM_CLICK, 0, 0
Sometimes, you will find that the button must not have the focus before receiving
the BM_CLICK message... you will just have to try and see. If this is the case,
you can use the SetFocus API to set the focus to another item on the form:
SetFocus lOtherItemhWnd
The declarations you need for all this code are below.
Private Const BM_CLICK = &HF5
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal
hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String)
As LongPrivate Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As
Long
Comments