Page 1 of 1

Сервис "Restart DM"

Posted: 19 Jan 2010, 15:29 Tue
by Korney San
Не помню, звучало ли в "Хотелках" (по крайней мере, поиск не нашёл), но для удалёного управления может понадобиться, потому написал и выкладываю один сервис из кучи самостоятельно. :)

Сервис Restart DM.
Перезагружает DM:
- по команде из модуля (Вам не пригодится ;) );
- по нажатию кнопки "Настройка" в окне настройки плагинов при выбранном сервисе;
- по щелчку по пункту меню "Плагины" с названием сервиса.

Технология работы:
При запуске DM определяется папка установки и временная папка. При вызове во временной папке создаётся bat-файл со строками закрытия и запуска DM, который затем запускается на исполнение. При следующей загрузке DM bat-файл стирается.

P.S. Попытка "самоподрыва" DM путём запуска bat-файла через команду Plugin API не увенчалась успехом, т.к. DM не успевает закрыться до начала выполнения второй строки bat-файла. :D То есть как раз "самоподрыв" получился, последующий запуск - нет.

Re: Сервис "Restart DM"

Posted: 07 Apr 2012, 14:15 Sat
by ponand
Korney San wrote: P.S. Попытка "самоподрыва" DM путём запуска bat-файла через команду Plugin API не увенчалась успехом, т.к. DM не успевает закрыться до начала выполнения второй строки bat-файла. :D То есть как раз "самоподрыв" получился, последующий запуск - нет.
попробуйте так:
С паузой и самоудолением

Code: Select all

@echo off
chcp 1251>nul
set DM="C:\Program Files\Download Master"
start /d %DM% dmaster.exe -exit
ping -n 4 -w 1000 127.0.0.1>nul
start /d %DM% dmaster.exe -autorun
if exist %0 del %0 /Q
или так, с проверкой процессов и самоудалением

Code: Select all

@echo on
chcp 1251>nul
set DM="C:\Program Files\Download Master"
start /d %DM% dmaster.exe -exit
:xxx
tasklist | findstr /i dmaster.exe 1>nul || Goto xxx
start /d %DM% dmaster.exe -autorun
if exist %0 del %0 /Q
или как параметр запуска, с убиством процесса

Code: Select all

/c (tasklist | findstr/i "dmaster.exe" && taskkill /f /im "dmaster.exe" && start /d "C:\Program Files\Download Master" dmaster.exe -autorun)