Powershell:将焦点设置为子窗口

时间:2014-07-17 16:28:57

标签: powershell focus childwindow

我正在处理自动化病毒扫描排除。由于我无法直接写入注册表,因此我使用PowerShell编写了一个宏。它工作得很好,但我想确保在发送大量按键之前我拥有所需窗口的焦点。

使用以下代码,我将访问McAfee的VirusScan Exclusions。

& 'C:\Program Files (x86)\McAfee\VirusScan Enterprise\mcconsol.exe'
Start-Sleep 5    
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::AppActivate("VirusScan Console")
Start-Sleep -m 500
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{DOWN}{DOWN}{DOWN}%{ENTER}")
start-sleep -m 500
#[Microsoft.VisualBasic.Interaction]::AppActivate("On-Access Scan Properties")
[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{DOWN}{TAB}{TAB}{TAB}{RIGHT}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{RIGHT}%E")
start-sleep -m 750

但是,焦点可能无法在正确的窗口上显示。

儿童窗户 出现“按访问扫描属性”,然后显示“设置排除”(作为“按访问扫描属性”的子项)。

问题:    1)我可以用什么代码将焦点设置到特定的子窗口(按标题)?    2)我可以用什么代码来测试窗口实际上是焦点?

基本上我使用和RDP管理器连接到一堆不同的机器。我想关闭这个脚本并忘掉它。为了做到这一点,我必须确保正确的窗口是焦点。当我在RDP连接之间切换时,它不能很好地工作。

0 个答案:

没有答案