如何批量检查资源管理器是否已打开?
我需要选择一个文件的屏幕截图,但是只有在窗口打开后才能显示。窗口标题始终相同。
由于
示例:
_JAVA_OPTIONS="-Xms256m -Xmx4096m"
答案 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中的等效版本