首页 > 解决方案 > Powershell 获取窗口名称和发送键

问题描述

我有一个脚本循环,直到它找到一个 Internet Explorer 窗口,然后将密钥发送给它(见下文)。我的问题是我无法在 AppActivate 功能后将密钥发送到窗口,因为它没有关注应输入密钥的“文件名”框。(见下面我的代码)

$wshell = New-Object -ComObject wscript.shell;
$ScriptDone = 'False'
$val=0

While ($ScriptDone = 'False') 
{ 
    if($wshell.AppActivate('Choose File to Upload'))
    {
        Start-Sleep -Seconds 1

        [System.Windows.Forms.SendKeys]::SendWait('a')
        Break
    } 

    Start-Sleep -Seconds 1

    $val++
    Write-Host $val

    if ($val -eq 60)
    {
        $ScriptDone='True'
    }
}

下面还有一个屏幕截图,显示了弹出窗口的外观。

弹出框

有没有办法不激活窗口而是检查它是否存在?如果可能的话,我只想替换 AppActivate 功能。

或者第二个选项有没有办法在“选择要上传的文件”窗口中激活“文件名”框?

标签: powershellinternet-explorerwindowsendkeys

解决方案


推荐阅读