我正在处理自动化病毒扫描排除。由于我无法直接写入注册表,因此我使用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连接之间切换时,它不能很好地工作。