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

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

Новый участник


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

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


ya158, sov44
На усиленное тестирование не хватило времени и терпения...
Попробовал оба варианта и вот небольшое дополнение - нужно первой командой удалить SfxVarApiPath:
Код: Выделить весь код
cmd /c cd /d %TEMP%&rd /s /q \"%SfxVarApiPath%\"&...
А то остаются SfxVarApiPath в %TEMP%.
Ну а так в принципе оба решения вполне рабочие...только проблема одна все-таки обнаружилась, пока глубоко не копал:
Если далее программу вызывать с waitall:, то получаю такое сообщение:
DiskDefrag_Std_RU.exe: ошибка
------------------------------------
Произошла ошибка при выполнении DiskDefrag.exe
Неверная функция.
==================================
Никакого отношения к загрузке системы не имеет, т.к. и в спокойном состоянии то же самое.
Обидно...так красиво все получилось, может, посмотрите, как с другими программами?
Я просто уже не успеваю, может, это и c DiskDefrag только.
Хотя...тут проблема общая, наверное, т.к. по waitall: запускается второй процесс, вот он и киллится.
Но у меня почему-то такого не происходит, я тоже боялся раньше, когда делал вариант с .cmd, но при проверке проблем не обнаружилось и я дальше не копал.
В файле анализ такой (zz_M%=%%M):
Код: Выделить весь код
For /F "Tokens=1,2 Delims=," %%I In ('Tasklist /FO CSV /NH ') Do (If %%I=="%zz_M%" (Set PID=%%~J&&Set /a N+=1))
If %N% LEQ 1 goto NEXT  - это нормальный выход, иначе TaskKill
Вроде по логике то же самое.

Последний раз редактировалось Victor_Man, 12-02-2017 в 16:56.


Отправлено: 16:12, 12-02-2017 | #1828