【问题标题】:Why won't a window take keys sent by sendkeys?为什么窗口不接受 sendkeys 发送的密钥?
【发布时间】:2016-03-23 16:35:41
【问题描述】:

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

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('~');

附言 这不是时间问题:我尝试更改睡眠时间,但这没有任何好处。

谢谢!

【问题讨论】:

  • 安装程序是否被提升,而 powershell 脚本不是?请注意,您不能在具有不同权限级别的窗口之间拖放(例如)。
  • @briantist - 感谢您的评论。我不确定我理解你的意思 - 当脚本发送回车键时,安装程​​序具有焦点。
  • 您的脚本是否在管理员模式下运行?如果不是,请以管理员权限运行该脚本,即使您是该系统的管理员。
  • @AjitMedhekar 做到了!多谢! (希望我可以将评论标记为解决方案。如果您将其添加为答案,那就太好了,这样人们将来会看到它:)

标签: powershell automation installation sendkeys


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多