Jump to content

Sending WM_MOUSEDOWN instead of useing MouseClick


due
 Share

Recommended Posts

Hi I am trying to send message to window using windows API.

I looks like _SendMessage($hWnd, $WM_MOUSEMOVE, $MK_LBUTTON, $lParam)

In spy I see that window does receive message with correct parameters but there is no responce. (Like button is not clicked...)

Using MouseClick makes it work, but I need to have a number of windows working simultaneously without switching beetwen them.

I would appreciate any help on the subject.

Evgeny

Link to comment
Share on other sites

  • Moderators

due,

Welcome to the AutoIt forum. :(

I see that on the ControlClick page in the Help file there is this warning:

Some controls will resist clicking unless they are the active window. Use the WinActivate() function to force the control's window to the top before using ControlClick().

Although not privy to the inner workings of Autoit, it would not surprise me if ControlClick used the same _SendMessage call that you are using. If so then I imagine that you are falling foul of the same restriction. :)

Not a great help in solving your problem, but at least it might explain why it is happening.

I will try and be more helpful next time! :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Without code, we cannot guess. But I would suggest you are not using the correct message. That message simply means the mouse has moved over some window coordinates (specified by lParam) with the left button down. This does not equal a click. Also, this message must be sent to the parent window, not the button.

You are far better off sending the button a BM_CLICK message directly. MSDN can show you how to use this message. It sends the button a WM_LBUTTONDOWN and WM_LBUTTONUP message, and sends the parent window the BN_CLICKED notification.

/edit:

better answer

Edited by wraithdu
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...