MerkurAlex Posted March 17, 2007 Posted March 17, 2007 ok so i want to send a key to a game without having it selected aka i could have it minimized but it would still h it the buttons. i figure window get handle and control send should work but everything ive tried doesnt work. [quote name='PsaltyDS' post='635433' date='Jan 27 2009, 07:04 AM']Larry is a mass murderer?! It's always the quiet, clean cut, bald guys... [/quote]
Falcone88 Posted March 17, 2007 Posted March 17, 2007 Are you sure wingethandle() is getting the handle correctly? Also, you don't need a handle to the window to use controlsend. You can just use the title if you want. Make sure you're calling it correctly too. I think if you leave the text and controlID arguments blank it should work, assuming you have the right access to the window. Controlsend is kind of picky though, you may have to set the "raw" flag, depending on which keys you're sending... My Code:- _TocLib - UDF for TOC protocol (The simplified one used by 3rd party AIM/ICQ clients)
Moderators SmOke_N Posted March 17, 2007 Moderators Posted March 17, 2007 ControlSend() was fixed in the Beta 3.2.3.0, what version are you currently using?http://www.autoitscript.com/autoit3/files/beta/autoit/ Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
KalInEx Posted March 17, 2007 Posted March 17, 2007 This is the code I used for a simple "left click down + left click up" I needed for a util I am writing using AutoIT. It was written before I knew much about AutoIT (still dont know lots =>) and I think there are constants defined for many window messages someplace I am using constants below. ;================================== ; Script Name: WinClick ; Author: Kal In Ex ; Version: 1.0 ; AutoIt3 Version: 1.71 ; Revision Date: March 12, 2007 ; Public Release: March 12, 2007 ; Purpose: send mouse click to a window using windows mouse messages ; Copyright: 2007 Kal In Ex ;================================== Func WinClick($hWnd, $x, $y); similar to EUO command "click x y f" (can not specify other parameters yet) _SendMessage($hWnd, 0x0201, 1, $x + BitShift($y, -16)); 0x0201 = WM_LBUTTONDOWN _SendMessage($hWnd, 0x0202, 0, $x + BitShift($y, -16)); 0x0202 = WM_LBUTTONUP EndFunc Sending text was a bit more difficult and if you want to use extended key codes using ALT or CONTROL I do not believe there is a work around (window must have focus its a windows limitation). These are the routines I use for text tho just need the windows handle... ;================================== ; Script Name: WinSendText ; Author: Kal In Ex ; Version: 1.0 ; AutoIt3 Version: 1.71 ; Revision Date: March 12, 2007 ; Public Release: March 12, 2007 ; Purpose: send text to a window using WM_CHAR message ; Copyright: 2007 Kal In Ex ;================================== Func WinSendText($hWnd, $String) Local $Index Local $Length = StringLen($String) For $Index = 1 To $Length Step 1 _SendMessage($hWnd, 0x0102, Asc(StringMid($String, $Index)), 0); 0x0102 = WM_CHAR Next EndFunc
Moderators SmOke_N Posted March 17, 2007 Moderators Posted March 17, 2007 (edited) You've gotten your WinClick() to work in all the windows you have used it for? (Reminds me of MouseClickPlus()). Edited March 17, 2007 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
KalInEx Posted March 17, 2007 Posted March 17, 2007 I only use it with 1 game program called Ultima Online
Moderators SmOke_N Posted March 17, 2007 Moderators Posted March 17, 2007 I only use it with 1 game program called Ultima OnlineI had always wondered since VB users seem to use that _SendMessage() option a lot, why it rarely ever worked for me. I had always meant to test out the SendInput API function that some swear by, but I couldn't see how to make it Hwnd specific at the time. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now