ILLBeBack Posted December 1, 2012 Share Posted December 1, 2012 CTRL-A does not work on Edit controls. Others work, such as CTRL-C, CTRL-V, CTRL-X and CTRL-Z It's only CTRL-A that does not work. I tried ControlClick("Testing", "", $iEdit, "right", 1) on the edit box, then sending 'A' or 'a' afterwards, but no Joy. Below is the sample code. Any suggestions? #include <GUIConstantsEx.au3> GUICreate("Testing", 400, 240) $iEdit = GUICtrlCreateEdit("", 10, 10, 380, 200) $iTest1 = GUICtrlCreateButton("TEST1", 140, 215, 50, 20) $iTest2 = GUICtrlCreateButton("TEST2", 210, 215, 50, 20) GUISetState() $msg = "CTRL-A does not work on Edit controls." & @CRLF & _ "Give it a try." & @CRLF & _ @CRLF & _ "Others work, such as CTRL-C, CTRL-V, CTRL-X and CTRL-Z" & @CRLF & _ "It's only CTRL-A that does not work." & @CRLF & _ @CRLF & _ 'I tried ControlClick("Testing", "", $iEdit, "right", 1) ' & @CRLF & _ "on the edit box, then sending 'A' or 'a' afterwards, but no Joy." & @CRLF & _ "The TEST1 button does Right-Click-a ." & @CRLF & _ "The TEST2 button does just the Right-Click." & @CRLF & _ @CRLF & _ "Any suggestions?" GUICtrlSetData($iEdit, $msg) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $iTest1 ControlClick("Testing", "", $iEdit, "right", 1) ControlSend("Testing", "", $iEdit, "a") Case $iTest2 ControlClick("Testing", "", $iEdit, "right", 1) EndSwitch WEnd Exit Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 1, 2012 Moderators Share Posted December 1, 2012 ILLBeBack, That is a Windows problem/feature - nothing to do with AutoIt. I solve it like this: #include <GUIConstantsEx.au3> #include <GUIEdit.au3> #include <WinAPI.au3> Global $hInput_Handle $hGUI = GUICreate("Test", 500, 500) $cInput = GUICtrlCreateEdit("here is some text", 10, 10, 480, 480) $hInput_Handle = GUICtrlGetHandle(-1) ; Create dummy for accelerator key to activate $cSelAll = GUICtrlCreateDummy() GUISetState() ; Set accelerator for Ctrl+a Dim $aAccelKeys[1][2]=[["^a", $cSelAll]] GUISetAccelerators($aAccelKeys) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $cSelAll _SelAll() EndSwitch WEnd Func _SelAll() Switch _WinAPI_GetFocus() Case $hInput_Handle _GUICtrlEdit_SetSel($hInput_Handle, 0, -1) Return EndSwitch EndFunc ;==>_SelAll Please ask if you have any questions. M23 ILLBeBack 1 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted December 1, 2012 Moderators Share Posted December 1, 2012 (edited) Instead of ControlClick, why not just assign a variable to the value of whatever is in your Edit control? Try replacing this: Case $iTest1 ControlClick("Testing", "", $iEdit, "right", 1) ControlSend("Testing", "", $iEdit, "a") With this: Case $iTest1 $var = GUICtrlRead($iEdit) MsgBox(0, "", $var) Edit: Too slow as always when Melba is around Edited December 1, 2012 by JLogan3o13 "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
ILLBeBack Posted December 1, 2012 Author Share Posted December 1, 2012 I solve it like this:Thanks Melba23! Works very nicely. Link to comment Share on other sites More sharing options...
ILLBeBack Posted December 1, 2012 Author Share Posted December 1, 2012 Instead of ControlClick, why not just assign a variable to the value of whatever is in your Edit control? Try replacing this:Thanks JLogan3o13. I need the text to highlight for the user who presses CTRL-A. It's not that I'm trying to obtain the text for the program. Link to comment Share on other sites More sharing options...
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