Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Sending a message to Win32 Dialog in background.

by BrowserUk (Pope)
on Oct 31, 2012 at 10:07 UTC ( #1001638=note: print w/ replies, xml ) Need Help??


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.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

RIP Neil Armstrong


Comment on Re: Sending a message to Win32 Dialog in background.
Re^2: Sending a message to Win32 Dialog in background.
by nikosv (Hermit) on Nov 01, 2012 at 09:21 UTC
    is it possible to hook or sub class the windows procedure so to look for a custom WM_ message hence uppon reception handle it in any way fit?
    does win32 GUI allow accessing the low level winproc internals ?

      At the perl level, not to my knowledge. Though I have done nothing with Win32::GUI in a few years.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      RIP Neil Armstrong

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1001638]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (13)
As of 2014-08-21 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (135 votes), past polls