| View previous topic :: View next topic |
| Author |
Message |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Tue Aug 03, 2010 9:33 pm Post subject: PostMessage problem |
|
|
Hello,
Im sending a click to an window with PostMessage every 5 seconds. When I do any other input action in the target window while the click-message is sent (which happens prety ofthen), the click is sent, but ther other input action wont work.
The problem is pretty obvious. Before i sent the click, i have to check whether target's window procedure is already dispatching some other input actions or not. But i dont know how to do that.
Any ideas? _________________
|
|
| Back to top |
|
 |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Wed Aug 04, 2010 9:04 am Post subject: |
|
|
no one? _________________
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Wed Aug 04, 2010 1:02 pm Post subject: |
|
|
| SetWindowsHookEx ? |
|
| Back to top |
|
 |
justa_dude Grandmaster Cheater
Reputation: 23
Joined: 29 Jun 2010 Posts: 893
|
Posted: Wed Aug 04, 2010 1:57 pm Post subject: |
|
|
Are you on something newer than XP, perchance? I'm not terribly familiar with the new stuff, but I believe there are restrictions on what messages you can send to another app. If that is indeed the snag, you can try ChangeWindowMessageFilterEx.
Otherwise, you could see what happens if you substitute mouse_event() or a GetCursorPos/mouse_event/SetCursorPos for the message posting. Not as elegant, perhaps, but it might be worth giving a look.
Cheers,
adude |
|
| Back to top |
|
 |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Wed Aug 04, 2010 2:52 pm Post subject: |
|
|
Thank you guys for your answers.
| justa_dude wrote: | Are you on something newer than XP, perchance? I'm not terribly familiar with the new stuff, but I believe there are restrictions on what messages you can send to another app. If that is indeed the snag, you can try ChangeWindowMessageFilterEx.
Otherwise, you could see what happens if you substitute mouse_event() or a GetCursorPos/mouse_event/SetCursorPos for the message posting. Not as elegant, perhaps, but it might be worth giving a look.
Cheers,
adude | Thanks, im running on windows 7 but I would like to provide compatibility for lower windows versions as well. And i don't really like mouse_event()/SendInput() whatever in this case.
| Slugsnack wrote: | | SetWindowsHookEx ? | Could you pls explain what you mean by this api? How should i use it to solve my problem? _________________
|
|
| Back to top |
|
 |
justa_dude Grandmaster Cheater
Reputation: 23
Joined: 29 Jun 2010 Posts: 893
|
Posted: Wed Aug 04, 2010 3:37 pm Post subject: |
|
|
If the UAC is indeed the problem, then compatibility with lower versions isn't an issue - since UAC doesn't exist on XP and lower, you can post messages with reckless abandon (WM_TIMER used to be kinda' popular...). I suggested trying the mouse_event because it would be good in troubleshooting to know if it worked or not. It would let us know that you are targeting the wrong child window or that the UI doesn't use the standard messaging for mouse input or ...
Slug suggested SetWindowsHook because it would let you hook the message map of all running applications. You could then queue the messages as you saw fit. It would probably work, but it's a lot more work to implement and probably less portable (since Vista+ users are probably on 64-bits and XP on 32).
Cheers,
adude |
|
| Back to top |
|
 |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Wed Aug 04, 2010 6:32 pm Post subject: |
|
|
I think you misunderstood something. The clicks are sent, it works. My problem is basically that sometimes when i do something with the window like moving it, clicking in it etc.. it behaves weird. When I am moving the window for example while the clicks are sent, the window jumps back to its original position.
I need to find a way to delay the WM_LBUTTONDOWN/WM_LBUTTONUP messages while something is going on in the message queue. _________________
|
|
| Back to top |
|
 |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Thu Aug 05, 2010 9:19 am Post subject: |
|
|
I just tried SendInput/mouse_event and it has the same problem. When I use the function and move the window at the same time the window jumps back to its original position when the clicks are sent.
So that leads to the conclutsion that the function is not the problem. _________________
|
|
| Back to top |
|
 |
Deine Mutter Expert Cheater
Reputation: 1
Joined: 05 Apr 2006 Posts: 181
|
Posted: Fri Aug 06, 2010 8:13 am Post subject: |
|
|
Ok. I think i am an dumb idiot. Instead of dealing with all this message queue crap i should keep it simple. I "solved" the problem by just checking whether the left mouse button is pressed or not when i wanna send the click. | Code: | if GetAsyncKeyState(VK_LBUTTON) >= 0 then
//send the fucking click | Im such an stupid idiot -.- _________________
|
|
| Back to top |
|
 |
|