【问题标题】:AutoIt ControlSend does not send colonAutoIt ControlSend 不发送冒号
【发布时间】:2014-04-04 11:24:31
【问题描述】:

我有一个带有 ControlSend 语句的 AutoIt 脚本:

ControlSend("[REGEXPTITLE:(Ordner ausw.*hlen);CLASS:#32770]", "", "Edit1", "C:\Dynamics", 1)

这工作了一段时间,但在多次调用脚本后,突然 "C:\Dynamics" 中的冒号不再发送。我得到的只是“C\Dynamics”,没有冒号。这很奇怪,因为它在很长一段时间内都运行良好。我对Send 进行了同样的尝试,但由于安装在锁定屏幕后,Send 无法识别打开的窗口。我认为 ControlSend 是这里唯一的方法。

有人知道如何恢复结肠吗?

【问题讨论】:

  • 我尝试了一个类似的对话框,它按预期工作。 AutoItSetOption('WinTitleMatchMode', 4) AutoItSetOption('WinSearchChildren', 1) ConsoleWrite(WinExists("[REGEXPTITLE:Speichern unter;CLASS:#32770]", '')) ControlSend("[REGEXPTITLE:Speichern unter;CLASS:# 32770]", "", "Edit1", "C:\Dynamics", 1) 您使用哪个版本的 Autoit?
  • 您是否尝试分别发送前面的部分、冒号本身和冒号后面的部分,并在两者之间加上Sleep(1)
  • @Xenbiologist 我用的是autoitv3 v3.3.10.2,这应该是最新的版本,我会尝试单独发送它,让你知道它是否有效。
  • 它有时有效,但不是每次都有效,这真的很烦人

标签: autoit


【解决方案1】:

我意识到这是一个旧线程,但很多帖子从未解决此问题。请不要删除回复。如果可能,您希望使用 ControlSetText 函数。如果这不可能,请使用 do until 循环检查文本,直到其正确为止。

Func getItRight($string)
    Do
        ControlSetText("Choose File to Upload", "", 1148, $string)
        $test = ControlGetText ("Choose File to Upload","", 1148)
    Until $string = $test
EndFunc

【讨论】:

  • 您的答案可能已被删除,因为它更像是评论而不是答案。 (我意识到您当时没有足够的声誉来发表评论。)但是您使用ControlGetText 是对的,这是一个很好的答案。我在这里写了更多:有点晚了,但我遇到了同样的问题,终于找到了解决方案。我已经从论坛中导入了替代解决方案,这里:stackoverflow.com/questions/42588904/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多