Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] зацикливание (http://forum.oszone.net/showthread.php?t=212659)

D_e_n_n 05-08-2011 11:29 1726318

зацикливание
 
Помогите, не могу сделать чтобы этот скрипт постоянно висел в ожидании, и каждые пять минут проверял сколько копий блокнота запущено





On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
send = "Вы запустили больше одной копии блокнота!!!"
dim a, b, c

a = 5 'каждые 5 минут

If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If

b=a*1000*60
wscript.sleep b

For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
i=i+1
if i>1 then
objProc.Terminate
end if
Next
msgbox send

Iska 05-08-2011 12:10 1726335

Примерно так:
читать дальше »
Код:

Option Explicit

Const intPeriod = 5

Dim objSWbemServices
Dim objSWbemObjectEx

Dim i


Set objSWbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")

Do
        i = 0
       
        For Each objSWbemObjectEx In objSWbemServices.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
                i = i + 1
               
                if i > 1 Then
                        objSWbemObjectEx.Terminate
                End if
        Next
       
        WScript.Sleep 1000 * 60 * intPeriod
Loop

Set objSWbemServices = Nothing

WScript.Quit

Только смысл? За пять минут в Блокноте можно много чего сделать. И есть более правильный способ: подписка на событие по «Win32_ProcessStartTrace».


Время: 02:28.

Время: 02:28.
© OSzone.net 2001-