AppActivate不允许按字搜索

时间:2018-01-18 19:55:40

标签: windows powershell

我的Windows上有一个应用程序,窗口名称是这样的:一个随机数后跟空格,然后是它的名称RECFED。例如“3894 RECFED”。

我想向该窗口发送密钥,但我可以使用AppActivate来执行此操作,因为我无法知道窗口的确切标题。我正在使用这样的东西

$wshell = New-Object -ComObject WScript.Shell
$wshell.AppActivate("RECFED")
$wshell.SendKeys('a')

如果我将窗口的确切名称放在AppActivate,但上面的代码有效,但我手边没有确切的名称。

1 个答案:

答案 0 :(得分:0)

使用Get-Process按窗口标题识别进程,然后使用该进程的PID将窗口置于前台:

$id = Get-Process |
      Where-Object { $_.MainWindowTitle -like '*RECFED*' } |
      Select-Object -First 1 -Expand Id

$wshell.AppActivate($id)

有了这个说法,请注意SendKeys()是一个可怕的(片状,不可靠)自动化方法,只有在一切时才能用作绝对的最后手段 else失败了。