为什么 window 不接受 sendkeys 发送的密钥?

Why won't a window take keys sent by sendkeys?

我正在尝试构建一个 Powershell 脚本,以便自动安装我正在使用的程序(不幸的是,该程序没有静默安装程序)。 问题是安装程序 window 不会接受 sendkeys 发送的密钥:如果我只是按 enter,它就会工作,并且将带有 sendkeys 的 enter 发送给任何其他 window 也可以,但是发送 enter 使用向特定安装程序发送密钥 window 不会执行任何操作。以前有没有人遇到过这个问题并知道如何解决?我尝试使用的脚本如下:

add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms

./installer.exe

start-sleep 1

[Microsoft.VisualBasic.Interaction]::AppActivate('select setup language')
start-sleep 1

[System.Windows.Forms.SendKeys]::SendWait('~');

P.S 这不是时间问题:我试过更改睡眠时间,但这没有任何用处。

谢谢!

您只需要 运行 该脚本作为管理员。因为很多时候即使我们拥有管理员权限,脚本也无法执行 winForms 或其他东西的功能。 因此,以管理员身份 运行 该脚本是一个好习惯(运行 作为管理员)。