我的Windows上有一个应用程序,窗口名称是这样的:一个随机数后跟空格,然后是它的名称RECFED。例如“3894 RECFED”。
我想向该窗口发送密钥,但我可以使用AppActivate
来执行此操作,因为我无法知道窗口的确切标题。我正在使用这样的东西
$wshell = New-Object -ComObject WScript.Shell
$wshell.AppActivate("RECFED")
$wshell.SendKeys('a')
如果我将窗口的确切名称放在AppActivate
,但上面的代码有效,但我手边没有确切的名称。
答案 0 :(得分:0)
使用Get-Process
按窗口标题识别进程,然后使用该进程的PID将窗口置于前台:
$id = Get-Process |
Where-Object { $_.MainWindowTitle -like '*RECFED*' } |
Select-Object -First 1 -Expand Id
$wshell.AppActivate($id)
有了这个说法,请注意SendKeys()
是一个可怕的(片状,不可靠)自动化方法,只有在一切>时才能用作绝对的最后手段 else失败了。