Jump to content

Sending special characters input from a GUI field


BlowFish
 Share

Recommended Posts

I want to read a string from a field on a dialogue box and send it to an app I need to send special characters

I enter "^c" into the box and have code something like

$ID = GUICtrlCreateInput("Input String", 8, 40, 120)

$str = GUICtrlRead($ID)

send ($str)

as you might expect AutoIt does not seem to do the conversion of special characters when they are in a variable (unless I have messed up). Any suggestions?

Cheers.

Link to comment
Share on other sites

Must be something in your script I guess, because it works fine for me... Run the following script, put "^a^x" into the input or something and open a notepad and input some text. Then press the ESC hotkey. For me, that does ^a^x just fine (selects notepad text and cuts it).

Note that your command is ^c, meaning Copy, which has no visual result... So maybe it already works? :graduated:

#include <GUIConstantsEx.au3>

HotKeySet("{ESC}","DoIt")

$gui = GUICreate("test",500,150)
$input = GUICtrlCreateInput("test",10,10,450,80)
$button = GUICtrlCreateButton("go",10,100,450,40)
GUISetState()

While 1
    $msg = GUIGetMsg()
    If $msg == $GUI_EVENT_CLOSE Then
        Exit
    EndIf
WEnd

Func DoIt()
    $shizzle = GUICtrlRead($input)
    Send($shizzle)
EndFunc

Roses are FF0000, violets are 0000FF... All my base are belong to you.

Link to comment
Share on other sites

  • Moderators

BlowFish,

Welcome to the AutoIt forum. :graduated:

Try using the "raw" parameter with your Send command:

Send($str, 1)

That way AutoIt does not try to convert the modifier characters (?^+#). :(

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Thanks for your prompt replies! I will try the raw setting. I should have been more accurate I am actually using ControlSend. I can get it going with notepad but only when notepad has focus (thats weird of itself?). I am using

ControlSend("[CLASS:Notepad]", "", "Edit1", $SendStr) This works but only if notepad has focus.

For my program....

ControlSend("MyProg", "", "", $SendStr) This seems to strip the control char, I'll try raw mode.

Thanks again for the phenomenally fast replies :graduated:

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...