如何检查资源管理器窗口是否按批次打开?

时间:2015-09-29 06:09:39

标签: batch-file window wait explorer

如何批量检查资源管理器是否已打开?

我需要选择一个文件的屏幕截图,但是只有在窗口打开后才能显示。窗口标题始终相同。

由于

示例:

_JAVA_OPTIONS="-Xms256m -Xmx4096m"

2 个答案:

答案 0 :(得分:1)

如果没有其他窗口与打开的文件夹具有相同的标题,则可以使用duplicated

@echo off
rem DON'T ADD A TRAILING \ IN THE PATH!
set folder=d:\path\foldername
explorer "%folder%"
:wait
    timeout 1 >nul
    for %%z in ("%folder%") do (
        tasklist /fi "windowtitle eq %%~nxz" /fi "imagename eq explorer.exe" ^
        | find "explorer.exe" >nul
        if errorlevel 1 goto wait
    )
pause

答案 1 :(得分:0)

使用if an explorer window is opened来检查Scriptable Shell Objects非常容易,它是100%可靠的,与使用tasklist的解决方案不同(因为在任务信息中可能没有当前文件夹路径)。这是一个PowerShell脚本,用于检查文件夹是否已打开,如果未打开,则睡眠1秒钟

$path = '\\10.10.10.10\C$\ThisFolder\FileToHighlight.txt'
$shell = New-Object -ComObject Shell.Application
do {
    sleep 1
    $window = $shell.Windows() | where { $_.LocationURL -ieq ([uri]$path).AbsoluteUri }
} while ($window -eq $null) # wait until the folder is opened

# Explorer window has opened, take the screenshot
start .\Bin\screenshot-cmd.exe -wt "ThisFolder" -o ".\Screenshots\$var.png"

如果愿意,还可以使用VBS或Jscript。检查我上面的链接以查看Jscript中的等效版本