我正在尝试编写一个脚本,并且需要在弹出一个新对话框后模拟一些击键。当我进入该功能块时,powershell返回“False”,并且不执行“击键”。我觉得我没有到达下一个窗口。

    function ats{
      $wshell = New-Object -ComObject wscript.shell;
      cmd /c C:\location\location\ats.exe
      $wshell.AppActivate('Administrative Tool Suite (ATS)')
      Sleep 1
      $wshell.SendKeys('TAB')
      sleep .5
      $wshell.SendKeys('TAB')
      sleep .5
      $wshell.SendKeys('TAB')
      sleep .5
      $wshell.SendKeys('TAB')
      sleep .5
      $wshell.SendKeys('~')
    }
    ats

最佳答案

Powershell正在等待退出命令中的exe。因此,您需要运行exe并并行执行其他命令的机制。

只需更改行:

start-job { cmd /c notepad.exe }

它将启动新线程以打开记事本,并且您的其他代码将并行执行。它将密钥发送到记事本。

如果要发送tab,则必须使用powershell转义字符,例如`t

关于powershell - 当我尝试模拟击键时,值返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56696486/

10-13 09:27