会话断开时发送键盘输入

会话断开时发送键盘输入

我有一个想要自动执行的任务,基本上需要运行一个 GUI 应用程序并向其发送按键输入。

我有一个可以用于此目的的 powershell(尽管任何使用开箱即用的 Windows 功能的东西也可以)。

问题是我需要它在无人值守的情况下运行,当我断开会话时,它会停止脚本发送输入的能力(或者可能会阻止应用程序获得焦点?)

我正在寻找一种方法来让这个过程在没有活动会话的情况下运行,或者寻找一种方法来“欺骗”窗口即使在 RDP 连接断开后也保持会话处于活动状态。

可以用于此目的的测试脚本是(需要先打开记事本):

[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
$wshell = New-Object -ComObject wscript.shell;
while ($true) {
    $wshell.AppActivate('Untitled - Notepad');
    $d = date;
    [System.Windows.Forms.SendKeys]::SendWait($d);
    [System.Windows.Forms.SendKeys]::SendWait('~');
    start-sleep 1
}

有任何想法吗?

相关内容