Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата mapisic:
если потом снова запустить programm.exe то скрипт его снова закрывает »
Если снова запустить — то пойдёт новый отсчёт времени, с нуля.

Ну, например, вот так:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strProcessName
Dim intDuration
Dim intPolling

Dim strComputer

Dim objSWbemObjectEx
Dim objSWbemDateTime


strProcessName = "Notepad.exe"
intDuration    = 15
intPolling     = 5

strComputer    = "."

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(strComputer, "root\cimv2")
	Set objSWbemDateTime = WScript.CreateObject("WbemScripting.SWbemDateTime")
	
	Do
		For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcessName & "'")
			objSWbemDateTime.Value = objSWbemObjectEx.CreationDate
			
			If DateAdd("s", intDuration, objSWbemDateTime.GetVarDate()) < Now() Then
				objSWbemObjectEx.Terminate
			End If
		Next
		
		WScript.Sleep intPolling * 1000
	Loop
	
	Set objSWbemDateTime = Nothing
End With

WScript.Quit 0

«strProcessName» — имя процесса, «intDuration» — ограничение на продолжительность работы указанного процесса (в секундах), «intPolling» — период опроса процессов (в секундах).
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:41, 23-08-2015 | #2