in reply to Sending a message to Win32 Dialog in background.
I think you may be out of luck.
When you post messages to an application, they go into a common queue. When those messages represent user input -- keyboard or mouse -- they get routed to the appropriate window by determining where the keyboard focus or mouse pointer is when the input arrives. If the windows you are targeting are not visible to the user, then they cannot have the keyboard focus or be under the mouse pointer.
SendMessage on the other hand does not go via the message queue, but is actually a synchronous call to the targeted window procedure. But, if you are sending them to a dialog, that usually consists of several controls; possibly including multiple input fields; then again, the keyboard focus or mouse pointer position is used to determine which of the controls within the dialog should respond to the input. If none of the sub-controls has the focus or is under the pointer -- because the dialog is hidden -- then it is probable that the input cannot be routed and so is discarded.
You might be able to bypass the problem by sending the messages directly to the required controls; but there is no guarantee that they will -- in the absence of focus and visibility -- be in a state that will allow them to respond correctly.
Indeed, given the possible nefarious uses that such techniques might be put to, it is quite possible that the system might actively inhibit the attempts to fake user input to hidden dialogs.
The bottom line is that you should probably re-think the design of what you are trying to do.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sending a message to Win32 Dialog in background.
by nikosv (Deacon) on Nov 01, 2012 at 09:21 UTC | |
by BrowserUk (Patriarch) on Nov 01, 2012 at 09:43 UTC |