Значение, возвращающее ложь, когда я пытаюсь имитировать нажатия клавиш - PullRequest
2 голосов
/ 21 июня 2019

Я пытаюсь написать скрипт и мне нужно имитировать некоторые нажатия клавиш после появления нового диалогового окна.Когда я добираюсь до этого функционального блока, 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

1 Ответ

0 голосов
/ 21 июня 2019

Powershell ждет выхода из команды exe.Таким образом, вам нужен механизм, который запускает исполняемый файл и выполняет другие команды параллельно.

Просто измените строку:

start-job { cmd /c notepad.exe }

Запустится новый поток, чтобы открыть блокнот, и ваш следующий код будет выполняться параллельно.Он отправляет ключи в блокнот.

Если вы хотите отправить tab, вам нужно использовать escape-символ powershell, например `t .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...