Определить текущее активное окно, отправить нажатие клавиши в другое окно и вернуться к текущему активному окну - PullRequest
0 голосов
/ 08 апреля 2020

Проблема: Моя виртуальная машина выходит из системы через 15 минут без ввода данных, и я стараюсь поддерживать ее работу, одновременно сводя к минимуму воздействие на меня, работая на моей машине.

Потенциал Решение с использованием Powershell: 1. Определите текущее активное окно 2. Измените фокус на окно приложения виртуальной машины (имя окна - stati c) 3. 3. Каждые 15 минут / 900 секунд и отправьте нажатие клавиши F16 4. Верните назад фокус к ранее активному окну, над которым я работал.

Я написал рабочий код для достижения пунктов 2 и 3, но я не смог найти решение для пунктов 1 и 4. Я уверен это простая проблема, но я бы хотел найти простое и элегантное решение.

Мой текущий код:

while($true)
{
    $wshell = New-Object -ComObject wscript.shell;
    $wshell.AppActivate('My VM Window I need to keep alive')
    Sleep 1
    Write-Output("Sending Keystroke")
    Sleep 1
    $wshell.SendKeys('F16')
    Sleep 1
    Write-Output("Sleeping")
    Sleep 900
}

Если есть лучший способ завершив пункты 2 и 3, также, пожалуйста, дайте мне знать, что я здесь, чтобы узнать.

В качестве альтернативы: Есть ли способ отправить нажатие клавиши в неактивное окно, даже не выходя из текущего активное окно? это было бы еще менее навязчиво!

Спасибо за вашу помощь!

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