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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT для перезапуска программы по времени

Ответить
Настройки темы
CMD/BAT - [решено] BAT для перезапуска программы по времени

Аватара для xctr

Старожил


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


Конфигурация

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


Всем добрый день прошу помощи с на написанием bat для запуска и выключения программы в определённые промежутки времени.
Ситуация:
Нужно запустить программу bat файлом и через 13минут эту программу тем же bat файлом перезапустить автоматически, осложняется тем что в системе запущенно несколько одинаковых программ и как выключить именно ту которая запустилась с bat для меня секрет.

Отправлено: 17:40, 18-02-2011

 

Старожил


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

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


Цитата xctr:
как выключить именно ту которая запустилась с bat для меня секрет. »
Вариант с именем процесса сразу отпадает, а как насчет того, чтобы перед запуском получить PID уже запущенных процессов с таким именем, после запуска еще раз получить список PID, взять недавно появившийся, который и является PID запущенной скриптом программы, а потом, когда подойдет время завершения - завершить по PID?

Отправлено: 18:16, 18-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Цитата xctr:
Нужно запустить программу bat файлом и через 13минут эту программу тем же bat файлом перезапустить автоматически »
Вот VB скрипт
Код: Выделить весь код
strComputer = "."
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
objProcess.Create "Notepad.exe", , , intProcessID
WScript.Sleep 780000 'ждем 13 минут

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessId = " & intProcessID)
For Each objProc In colProcessList
    objProc.Terminate()
Next

objProcess.Create "Notepad.exe"

Отправлено: 19:43, 18-02-2011 | #3


Аватара для xctr

Старожил


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

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


Цитата Anonymоus:
Вариант с именем процесса сразу отпадает, а как насчет того, чтобы перед запуском получить PID уже запущенных процессов с таким именем, после запуска еще раз получить список PID, взять недавно появившийся, который и является PID запущенной скриптом программы, а потом, когда подойдет время завершения - завершить по PID? »
не подойдёт программы постоянно пере запускаются.
Ivan Bardeen,
подскажите, а где в этом скрипте задаются параметры для запуска? Программа запускается с определёнными параметрами (к ярлыку дописываю).

Отправлено: 19:51, 18-02-2011 | #4


Ветеран


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

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


Цитата xctr:
подскажите, а где в этом скрипте задаются параметры для запуска? Программа запускается с определёнными параметрами (к ярлыку дописываю). »
Прямо в кавычках
напрмер графический интерфейс программы shutdown
Код: Выделить весь код
strComputer = "."
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
objProcess.Create "shutdown -i", , , intProcessID
WScript.Sleep 780000

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessId = " & intProcessID)
For Each objProc In colProcessList
    objProc.Terminate()
Next

objProcess.Create "shutdown -i"
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:58, 18-02-2011 | #5


Аватара для xctr

Старожил


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

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


Ivan Bardeen, проверил что то не то с этим скриптом не пере запускает он программу через указанное время.

Отправлено: 02:29, 19-02-2011 | #6


Ветеран


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

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


Цитата xctr:
Ivan Bardeen, проверил что то не то с этим скриптом не пере запускает он программу через указанное время. »
Что за программа и покажите код скрипта, который у вас получился.

Отправлено: 08:25, 19-02-2011 | #7


Googler


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

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


Цитата xctr:
запустить программу bat файлом и через 13минут эту программу тем же bat файлом перезапустить автоматически »
Код: Выделить весь код
@echo off

set PNAME=notepad.exe
set PPATH=%windir%\system32\notepad.exe

set TITLE=%RANDOM%%RANDOM%
TITLE %TITLE%
:LOOP
(Start "" "%PPATH%"
 ping -w 780000 192.0.2.0 -n 1 >nul
 for /f "tokens=2 delims=," %%a in ('TaskList /NH /FO CSV /FI "WINDOWTITLE eq %TITLE%"') do (
 for /f "skip=1" %%b in ('WMIC PROCESS WHERE "ParentProcessId=%%~a AND Name='%%PNAME%%'" Get ProcessId^,SessionID') do (
 taskkill /PID "%%b"
)))
GoTo:LOOP

Последний раз редактировалось amel27, 20-02-2011 в 05:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 04:56, 20-02-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT для перезапуска программы по времени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скрипт для быстрого перезапуска интернета DJ@XON Скриптовые языки администрирования Windows 5 21-04-2013 13:16
CMD/BAT - Смена времени Windows посредством bat файла ZeroCrash Скриптовые языки администрирования Windows 2 25-05-2010 08:01
Прочие - [решено] Изменение системного времени для программы wolfxr Программное обеспечение Windows 1 01-01-2010 17:04
Запуск программы по времени Lodoss AutoIt 2 16-11-2009 22:02
[решено] Запуск определенной программы через n времени??? Anarasius AutoIt 14 20-09-2009 01:31




 
Переход