【问题标题】:Powershell send f5 key to edgePowershell 将 f5 键发送到边缘
【发布时间】:2021-06-06 07:34:54
【问题描述】:

我正在尝试创建一个刷新边缘的脚本:

start microsoft-edge:https://login.salesforce.com/?locale=eu
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Microsoft Edge') 

while ($true)
{
Sleep 15
$wshell.SendKeys('{f5}') 
}

问题是它向哪个窗口发送 F5,例如,如果我在记事本中按 f5,它将创建时间戳,我希望它只发送到边缘,有什么办法吗?

【问题讨论】:

  • 我没有做过类似的事情,但我认为你可能没有以最好的方式解决问题。在浏览器中按 f5 键刷新页面,但您的类可能有刷新页面的方法。尝试检查对象,看看你是否能找到类似的东西。此外,如果 wshell 将击键发送到错误的应用程序,则您的 AppActivate 行可能不会按照您的想法进行。你能用另一个命令专门关注那个应用程序吗?

标签: powershell key send


【解决方案1】:

以下代码 sn-p 可以完成这项工作。您需要告诉 哪个 窗口应该被激活,例如如下:

$medge = Start-Process -PassThru -FilePath microsoft-edge:https://login.salesforce.com/?locale=eu
$wshell = New-Object -ComObject wscript.shell

Start-Sleep -Seconds 15                  ### increase time for slow connection
while ( $wshell.AppActivate($medge.Id) ) ### activate the desired window
{
    $wshell.SendKeys('{f5}')             ### send keys only if successfully activated
    Start-Sleep -Seconds 15
}

上面的代码 sn-p(源自有问题的代码)每 15 秒刷新一次 microsoft-edge

时机很重要:

  • 授予microsoft-edge足够的时间来运行和建立连接(参见Start-Sleep之前AppActivate),并且
  • 在窗口激活后立即发送密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多