【发布时间】:2015-10-14 06:29:37
【问题描述】:
有没有办法使用 PowerShell 将击键发送到特定窗口?
现在我正在打开一个 IE 窗口。
然后,通过调用该链接,将打开一个下载窗口。
我发送 ALT+TAB 来切换下载窗口,发送 LEFT+ENTER 来确认下载。
有没有办法将此 LEFT+ENTER 发送到特定窗口而无需关注它?
我的代码如下所示:
$ie=new-object -com internetexplorer.application
$ie.navigate2($url)
$ie.visible=$true
while($ie.busy) {Start-Sleep 1}
start-sleep -seconds 1
[System.Windows.Forms.SendKeys]::SendWait("%{TAB}")
start-sleep -seconds 1
[System.Windows.Forms.SendKeys]::SendWait("{LEFT}")
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
我想将击键发送到特定窗口,以确保即使焦点不在下载窗口上也能获得击键。
我知道发送击键不是下载文件的最佳方式,但我也尝试过:
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.Networkcredential($user, $password)
$webclient.DownloadFile($urlWeb,$path)
我总是收到 403 错误,但尚未找到解决此问题的解决方案...
【问题讨论】:
-
建议切换到 Firefox 并使用 iMacros 插件在该浏览器中实现自动化。
-
重新分级 403 错误:也许您必须发送带有请求的 cookie。使用 Fiddler/Debug 工具查看 cookie 并查看 this answer 以将它们与 WebClient 一起使用。
-
@nimizen 使用 firefox 是没有意见的,因为脚本必须在不同的系统上运行,而且并非所有系统都安装了 firefox...
-
@beatcracker 我已经看到你链接的问题并尝试了建议的解决方案,但没有成功......
-
@npit 那是一个公共站点,任何人都可以注册和下载文件吗?可以给个测试链接吗?
标签: windows powershell download keystroke