<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: слежение за существованием процесса]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2777&amp;type=atom" />
	<updated>2009-03-11T17:20:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2777</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: слежение за существованием процесса]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20539#p20539" />
			<content type="html"><![CDATA[<p>Пример запускает процесс &quot;notepad.exe&quot;, следит за его существованием и выдаёт сообщение о прекращении его работы. Код обрабатывает события удаления процессов с помощью WMI.<br /></p><div class="codebox"><pre><code>Set WshShell = CreateObject (&quot;WSCript.shell&quot;)
PID = WshShell.Exec(&quot;notepad.exe&quot;).ProcessID

Set WMI = GetObject(&quot;winmgmts:\\.\root\cimv2&quot;)
Set colProcesses = WMI.ExecNotificationQuery _
(&quot;Select * From __InstanceDeletionEvent Within 1 Where TargetInstance ISA &#039;Win32_Process&#039;&quot;)
Do Until 1 = 2
    Set objProcess = colProcesses.NextEvent
    If objProcess.TargetInstance.ProcessID = PID Then
       Exit Do
    End If
Loop
MsgBox &quot;Процесса notepad.exe (PID &quot; &amp; PID &amp; &quot;) больше нет.&quot;</code></pre></div><p>Автор идеи - <strong>ingvar68</strong>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-03-11T17:20:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20539#p20539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: слежение за существованием процесса]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=19428#p19428" />
			<content type="html"><![CDATA[<p>Пример отслеживает создание процесса &quot;notepad.exe&quot; и выдаёт сообщение о его существовании (PID процесса). Пример демонстрирует использование объекта <a href="http://msdn.microsoft.com/en-us/library/aa393838.aspx">SWbemRefresher</a>.<br /></p><div class="codebox"><pre><code>Set objService = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2&quot;)
Set objRefresher = CreateObject(&quot;WbemScripting.SWbemRefresher&quot;)
Set colItems = objRefresher.AddEnum(objService, &quot;Win32_Process&quot;).objectSet
While True
    objRefresher.Refresh
    For Each objItem in colItems
        If InStr(objItem.ExecutablePath, &quot;notepad.exe&quot;) Then
            Wscript.Echo &quot;notepad.exe PID &quot; &amp; objItem.ProcessId
        End If
    Next
    Wscript.Sleep 1000
Wend</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-02-12T15:50:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=19428#p19428</id>
		</entry>
</feed>
