我有一个想要自动执行的任务,基本上需要运行一个 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
}
有任何想法吗?