AutoIt 脚本中的变量仅识别输入框中的第一个字符

发布于 2024-11-06 11:40:57 字数 348 浏览 5 评论 0原文

我正在尝试创建在输入输入框后能够识别多字符变量(xx.xx 格式的数字)的脚本。在输入框中输入 xx.xx 格式的变量后,该变量将仅显示为单个字符,使用第一个字符。例如,如果我在输入框中输入 10.80,则在脚本运行时重用该变量时,只会显示为 1。

以下是使用该变量的脚本部分:

Dim $price
$price = InputBox("Offer Price", "Input Offer Price")

Send("{TAB}")

Send("{"& $price &"}") ; Enters variable

Send("{DOWN}{TAB}{TAB}{TAB}{ENTER}")

I am trying to create script that is able to recognize a multi-character variable (a number in xx.xx format) after entering into input box. After entering the variable in xx.xx format into the input box, the variable will only show up as a single character, using the first character. For example, if I put 10.80 into the input box, the variable when reused when the script is run, will only show up as 1.

Here are parts of the script that uses the variable:

Dim $price
$price = InputBox("Offer Price", "Input Offer Price")

Send("{TAB}")

Send("{"& $price &"}") ; Enters variable

Send("{DOWN}{TAB}{TAB}{TAB}{ENTER}")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

临走之时 2024-11-13 11:40:57
Send("{100000000000000000}")

发送字符 1。

Send("100000000000000000")

发送字符 100000000000000000。

很多人对何时在 Send 中使用 {花括号} 感到困惑。

更改您的脚本来执行此操作:

Send($price) ; enters variable
Send("{100000000000000000}")

sends the character 1.

Send("100000000000000000")

sends the characters 100000000000000000.

A lot of people get confused with when to use {curly braces} with Send.

Change your script to do this instead:

Send($price) ; enters variable
把人绕傻吧 2024-11-13 11:40:57

我觉得我可能完全误解了你的问题,但你似乎要求一个输入框来检查输入是否符合特定的输入模式,然后为你提供最左边的字符。这将做到这一点。

While 1
    Local $responce = InputBox('Offer Price', 'Input offer price in XX.XX format.')
    If @error == 1 Then
        MsgBox(0, 'Cancel Pressed', 'You pressed cancel exiting loop.')
        ExitLoop
    EndIf

    If StringRegExp($responce, '\d{2}\.\d{2}') Then
        MsgBox(0, 'Success', 'The input fit the pattern XX.XX and the left most character of it = ' & StringLeft($responce, 1))
        ExitLoop
    Else
        MsgBox(0, 'Invalid Input', 'The input needs to be a number in XX.XX format.')
    EndIf
WEnd

I get the feeling I may be entirely misunderstanding your question but you seem to be asking for an input box that checks if the input meets a particular input pattern then gives you the left most character of it. This will do that.

While 1
    Local $responce = InputBox('Offer Price', 'Input offer price in XX.XX format.')
    If @error == 1 Then
        MsgBox(0, 'Cancel Pressed', 'You pressed cancel exiting loop.')
        ExitLoop
    EndIf

    If StringRegExp($responce, '\d{2}\.\d{2}') Then
        MsgBox(0, 'Success', 'The input fit the pattern XX.XX and the left most character of it = ' & StringLeft($responce, 1))
        ExitLoop
    Else
        MsgBox(0, 'Invalid Input', 'The input needs to be a number in XX.XX format.')
    EndIf
WEnd
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文