【问题标题】:Send command doesn't send keys in autoit script发送命令不会在 autoit 脚本中发送密钥
【发布时间】:2011-11-30 09:21:51
【问题描述】:

我开始使用 AutoIT V3 编写这样的代码

$file = "G:\FullSetup800203.exe"

ShellExecuteWait($file)

Sleep(75000)

WinWaitActive("M1 Setup")

Send("!n")

一切正常,但发送命令不起作用。

我使用的是 Windows 7 64 位机器。

【问题讨论】:

  • 如果从打开文件创建的结果窗口是“M1 设置”,则不需要 Sleep() 函数,因为 WinWaitActive() 已经在“休眠”脚本,直到文件已打开。

标签: autoit


【解决方案1】:

我可能是错的,但在我看来,当您实际上不想使用 Wait 时,您使用的是 ShellExecuteWait

现在发生的事情是您正在运行文件并等待它关闭,一旦进程退出然后您再休眠 75 秒,然后等待某个窗口处于活动状态,然后发送字符。这是你的本意吗?

发送命令总是发送密钥。说它“不起作用”是不对的,它只是按照你的预期去做。

【讨论】:

    【解决方案2】:
    $file = "G:\FullSetup800203.exe"
    
    ShellExecute($file)
    
    Sleep(75000)
    
    WinWaitActive("M1 Setup")
    
    Send("!{n}")
    

    试试看。

    【讨论】:

      【解决方案3】:

      在长时间搜索为什么该脚本在 Windows XP 上运行而不是在 Windows 7 64 位上运行后,我发现了原因。 在 Windows 7 上,AutoIt 脚本必须以管理员身份运行才能为某些应用程序发送击键和访问控制。

      【讨论】:

        【解决方案4】:

        在cmd.exe的开启中添加Administrator ControlSend("管理员: C:\Windows\system32\cmd.exe", "", "", "cd C:\Program Files (x86)\thefile")@SW_SHOW)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-04-09
          • 1970-01-01
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          • 2014-03-31
          • 1970-01-01
          相关资源
          最近更新 更多