首页 > 解决方案 > 识别当前活动窗口,向另一个窗口发送击键并返回到当前活动窗口

问题描述

问题:我的虚拟机在没有输入的情况下在 15 分钟后注销,我希望保持它的活力,同时尽量减少对我在机器上工作的影响。

使用 Powershell 的潜在解决方案: 1. 识别当前活动窗口 2. 将焦点更改为 VM 应用程序窗口(窗口名称是静态的) 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 点,请告诉我我在这里学习。

或者: 有没有办法在不离开当前活动窗口的情况下将击键发送到非活动窗口?那将是更少的干扰!

感谢你的协助!

标签: powershell

解决方案


推荐阅读