<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS & WMI: асинхронный поиск файлов]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5741</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5741&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS & WMI: асинхронный поиск файлов».]]></description>
		<lastBuildDate>Thu, 12 May 2011 09:54:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=48329#p48329</link>
			<description><![CDATA[<p>Вот что у меня вышло, но этот код не работает<br /></p><div class="codebox"><pre><code>Dim sFilter, fCount, objItems, sFiles, sPath
Dim objShell, objWMI, objSink, f
sFilter = &quot;*.log;*.bak&quot;
sFiles = Array()

Set objShell = CreateObject(&quot;Shell.Application&quot;)
Set objWMI = GetObject(&quot;winmgmts:\\.\Root\CIMV2&quot;)
Set objSink = WScript.CreateObject(&quot;WbemScripting.SWbemSink&quot;, &quot;Sink_&quot;)

&#039;[Выполнение асинхронного запроса] 
objWMI.ExecQueryAsync objSink, &quot;SELECT * FROM Win32_Directory&quot;

&#039;цикл ожидания, пока выполнится запрос
f = false
While Not bdone
    WScript.Sleep 100
Wend

WScript.Echo &quot;Finished&quot;
objSink.Cancel
Set objSink = Nothing
Set objWMI = Nothing
Set objShell = Nothing
WScript.Quit

&#039;[Обнаружение экземпляра объекта (каталога)]
&#039;------------------------------------------------------------------------
Function Sink_OnObjectReady(objWbemObject, objWbemAsyncContext)
    
    On Error resume Next
    objItems = objShell.NameSpace(objWbemObject.Name).Items()
    If Err.Number &lt;&gt; 0 Then  &#039;Exit Function
    WScript.Echo Err.Number
    End If

    &#039;[Фильтрация элементов каталога по маске]
    &#039;----------------------------------------------------------------
    fCount = objItems.Count
    If fCount = 0 Then
    Exit Function 
    End If
    
    objItems.Filter 192, sFilter
    
    fCount = objItems.Count
    If fCount = 0 Then  
    Exit Function 
    End If    
    &#039;[Формирование строки путей найденных файлов]
    &#039;----------------------------------------------------------------
    For i = 0 to fCount -1
        sPath = objItems.Item(i).Path
        sFiles = sFiles + sPath
    Next

End Function

&#039;[Завершение запроса]
&#039;------------------------------------------------------------------------
Function Sink_OnCompleted(iHResult, objWbemErrorObject, objWbemAsyncContext)
    f = true  &#039;флаг завершения запроса
    If UBound(sFiles) = -1 Then
        WScript.Echo &quot;--Ничего не найдено--&quot;
    Else
        WScript.Echo &quot;Найденные файлы: &quot; &amp; VbCrLf &amp; sFiles
    End If
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Patrik)]]></author>
			<pubDate>Thu, 12 May 2011 09:54:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=48329#p48329</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47797#p47797</link>
			<description><![CDATA[<div class="codebox"><pre><code>
    If fCount = 0 Then  &#039;Exit Function 
    End If
    Exit Function
    
    objItems.Filter 64+128, sFilter
    
    fCount = objItems.Count
    If fCount = 0 Then  &#039;Exit Function 
    End If
    Exit Function</code></pre></div><p>Исправьте на<br /></p><div class="codebox"><pre><code>
    If fCount = 0 Then
        Exit Function 
    End If
    
    objItems.Filter 64+128, sFilter
    
    fCount = objItems.Count
    If fCount = 0 Then
        Exit Function 
    End If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Mon, 25 Apr 2011 09:33:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47797#p47797</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47796#p47796</link>
			<description><![CDATA[<p>Еще не понятно с функцией&nbsp; function Sink_OnObjectReady(objWbemObject, objWbemAsyncContext).<br />Вот что у меня получилось:<br /></p><div class="codebox"><pre><code>Function Sink_OnObjectReady(objWbemObject, objWbemAsyncContext)
     On Error resume Next
     objItems = objShell.NameSpace(objWbemObject.Name).Items()
    
    &#039;[Фильтрация элементов каталога по маске]
    &#039;----------------------------------------------------------------
    fCount = objItems.Count
    If fCount = 0 Then  &#039;Exit Function 
    End If
    Exit Function
    
    objItems.Filter 64+128, sFilter
    
    fCount = objItems.Count
    If fCount = 0 Then  &#039;Exit Function 
    End If
    Exit Function    
    &#039;[Формирование строки путей найденных файлов]
    &#039;----------------------------------------------------------------
    For i=0 To i&lt;fCount
        sPath = objItems.Item(i).Path
        sFiles = sFiles + sPath
        i=i+1
    Next

End Function</code></pre></div><p>Где у меня ошибка?</p>]]></description>
			<author><![CDATA[null@example.com (Patrik)]]></author>
			<pubDate>Mon, 25 Apr 2011 09:21:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47796#p47796</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47792#p47792</link>
			<description><![CDATA[<p>Вышеприведенная строка на js избыточна, достаточно было бы написать <strong>var sFilter = &#039;*.log;*.wlg;*.err;*.bak&#039;;</strong></p><p>Вот перевод:<br /></p><div class="codebox"><pre><code>
Dim sFilter
sFilter = &quot;*.log;*.wlg;*.err;*.bak&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 24 Apr 2011 18:49:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47792#p47792</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47791#p47791</link>
			<description><![CDATA[<p>Совершенно верно.<br />Как преобразовать строку:<br /></p><div class="codebox"><pre><code> var sFilter = String(&#039;*.log;*.wlg;*.err;*.bak&#039;);</code></pre></div><p>на VBS ?</p>]]></description>
			<author><![CDATA[null@example.com (Patrik)]]></author>
			<pubDate>Sun, 24 Apr 2011 18:42:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47791#p47791</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47782#p47782</link>
			<description><![CDATA[<p><strong>alexii</strong>, я так понял, что <strong>Patrik</strong> хочет перевести <a href="http://forum.script-coding.com/viewtopic.php?pid=40040#p40040">код от <strong>Poltergeyst</strong></a> с JS на VBS. </p><p><strong>Patrik</strong>, Вы можете вызывать JSкод из VBS. И где вызывают трудности в переводе?</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Sat, 23 Apr 2011 05:23:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47782#p47782</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47779#p47779</link>
			<description><![CDATA[<p><strong>Patrik</strong>, всё равно не понятно. Вот же оно: <a href="http://forum.script-coding.com/viewtopic.php?id=5008">Серый форум / JScript &amp; WMI: асинхронный поиск файлов</a>, всё доступно.</p><p>P.S. Если опять не то, и Вы пришли сюда по ссылке с поисковика, то приведите эту ссылку, дабы можно было установить её происхождение и куда она попала.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 22 Apr 2011 21:04:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47779#p47779</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47772#p47772</link>
			<description><![CDATA[<p>Можно выложить этот скрипт на VBS&nbsp; ?<br />Пытаюсь сам переконвертировать, но не получается...</p>]]></description>
			<author><![CDATA[null@example.com (Patrik)]]></author>
			<pubDate>Fri, 22 Apr 2011 08:46:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47772#p47772</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47755#p47755</link>
			<description><![CDATA[<div class="quotebox"><cite>Patrik пишет:</cite><blockquote><p>Можно выложить на VBS асинхронный поиск файлов созданный пользователем Poltergeyst&nbsp; ?</p></blockquote></div><p>Перефразируйте. Не очень понятно, что Вы хотите.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Apr 2011 16:16:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47755#p47755</guid>
		</item>
		<item>
			<title><![CDATA[VBS & WMI: асинхронный поиск файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47754#p47754</link>
			<description><![CDATA[<p>Можно выложить на VBS асинхронный поиск файлов созданный пользователем Poltergeyst&nbsp; ?<br />Конвертирую сам, но чтото у меня не получается с функцией <br /></p><div class="codebox"><pre><code>function Sink_OnCompleted(iHResult, objWbemErrorObject, objWbemAsyncContext)</code></pre></div><p>Выдает ошибку <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p><div class="codebox"><pre><code>Function Sink_OnObjectReady(objWbemObject, objWbemAsyncContext)
    
    On Error resume Next
    Set objItems = objShell.NameSpace(String(objWbemObject.Name)).Items()
    If Err.Number &lt;&gt; 0 Then
    WScript.Echo Err.Number
    End If
    
    
    &#039;[Фильтрация элементов каталога по маске]
    &#039;----------------------------------------------------------------
    Set fCount = objItems.Count
    If fCount = 0 Then  WScript.Echo &quot;Выход 1&quot; 
    &#039;Exit Function
    End If
    
    objItems.Filter(64+128, sFilter)
    Set fCount = objItems.Count
    If fCount = 0 Then  WScript.Echo &quot;Выход 2&quot; 
    &#039;Exit Function
    End If    
    &#039;[Формирование строки путей найденных файлов]
    &#039;----------------------------------------------------------------
    For i=0 To i&lt;fCount
        sPath = objItems.Item(i).Path
        sFiles = sFiles + sPath + VbCrLf
        i=i+1
    Next

End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Patrik)]]></author>
			<pubDate>Thu, 21 Apr 2011 15:46:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47754#p47754</guid>
		</item>
	</channel>
</rss>
