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

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

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


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

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


ya158
Ну, чем больше вариантов - тем лучше, есть из чего выбрать
Без командного файла - это хороший вариант, в принципе.
Я не делаю сложных проектов, поэтому стараюсь делать из простых элементов.
Ну, и также размышления:
Я остался на варианте с файлом, который вторая копия запускает из разархивированной первой.
Соответственно, при запуске первой копии такого файла нет вообще (т.к. не было еще разархивации).
Дело в том, что я вдруг сделал SFX на AusLogic Disk Defrag, а он при запуске загружает систему до 100%.
И...с удивлением обнаружил, что при такой нагрузке бывают сбои в TaskKill - и второй процесс тоже запускается!
Особенно, если кликнуть еще пару раз для тестирования. Я стал тестировать, запуская сборки из .cmd по 5 штук
Понятно, что такого не может быть реально, но захотелось "разобраться досконально".
Вспомнил молодость с отладкой задач в реальном времени, с логами.
Выяснил, что иногда последний PID не свой, т.е. задачи убивают друг друга, вот тут и могут быть проблемы.
А вот если запрашивать не последний процесс, а PID родителя через WMIC, то там получается всегда свой PID.
Но там что-то все так медленно ворочается - я от варианта c WMIC отказался.
Одним словом, самый устойчивый оказался именно вариант с файлом, который вторая копия запускает из разархивированной первой.
Но еще раз - это все для запредельных вариантов, которые в жизни не встретятся...
===================================================
Добавил альтернативный вариант z1_KillTask.cmd (на WMIC/TaskKill вместо TaskList/TaskKill) - в принципе то он рабочий.
http://forum.oszone.net/post-2688624.html#post2688624

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


Отправлено: 00:22, 11-02-2017 | #1815