Показать полную графическую версию : закрыть все окна explorer с определенным закголовком
написана давно прога на дельфях, но гибкости некоторой нет.
Открыто много окон explorer на разные папки, в т.ч.и на сетевыу "\\....."
Скрипт должен закрыть все окна, чей заголовок начинается? например с \\SERVER\.....
PowerShell:
(New-Object -Com Shell.Application).Windows() | Where LocationUrl -like "*//Server/*" | Foreach Quit
сорри, не уточнил... на wsh бы...
Option Explicit
Dim strPattern
Dim objWebBrowser
strPattern = "SERVER"
For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
With objWebBrowser
If TypeName(.Document) = "IShellFolderViewDual2" Then
If StrComp(Left(.LocationURL, Len("file://" & strPattern)), "file://" & strPattern, vbTextCompare) = 0 Then
'WScript.Echo .LocationURL
.Quit
End If
End If
End With
Next
WScript.Quit 0
Iska, я речь веду не про не про браузер, а про windows explorer...
Опиум, я тоже. Браузер — это «HTMLDocument», Проводник — «IShellFolderViewDual2».
Iska, просто у меня твой скрипт не отработал почемуто. Плотно не разбирался.
Цитата Iska:
Проводник — «IShellFolderViewDual2». »
а что тогда такое IShellFolderViewDual3 ?)
который у меня (поэтому твой скрипт и не аллё)
я заменил Left на конструкцию
Instr(TypeName(.Document),"IShellFolderViewDual")=1
и заработало.
Кстати. почему вы используете Left хотя Instr(....)=1 проще?
Проводник — «IShellFolderViewDual2». »
а что тогда такое IShellFolderViewDual3 ?)
который у меня (поэтому твой скрипт и не аллё) »
Опиум, у Вас какая ОС?
я заменил Left на конструкцию
Instr(TypeName(.Document),"IShellFolderViewDual")=1»
У меня нет там функции «Left()»:
If TypeName(.Document) = "IShellFolderViewDual2" Then »
Кстати. почему вы используете Left хотя Instr(....)=1 проще? »
Проще… и неправильно. Если речь про:
If StrComp(Left(.LocationURL, Len("file://" & strPattern)), "file://" & strPattern, vbTextCompare) = 0 Then »
у Вас какая ОС? »
Microsoft Windows [Version 6.1.7601] w7 eng ent sp1
Проще… и неправильно. Если речь про: »
где может быть косяк?
где может быть косяк? »
Дабы не возникло расхождений (как выше), покажите Ваш полный код.
Iska, Код ваш, я просто заменил left на instr
Option Explicit
Dim strPattern,s,c
Dim objWebBrowser
strPattern = ""
c=0
For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
With objWebBrowser
'WScript.Echo TypeName(.Document)
'If TypeName(.Document) = "IShellFolderViewDual3" Then
If Instr(TypeName(.Document),"IShellFolderViewDual")=1 Then
'If StrComp(Left(.LocationURL, Len("file://" & strPattern)), "file://" & strPattern, vbTextCompare) = 0 Then
s=.LocationURL
'проверяем, если открыт сетевой ресурс \\****
If (Instr(s,"file://")=1) and (mid(s,8,1)<>"/")Then
'WScript.Echo .LocationURL
c=c+1
.Quit
End If
End If
End With
Next
WScript.Echo "Closed:" & c
WScript.Quit 0
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.