Victor_Man,
Цитата Victor_Man:
- Предотвращение запуска второй копии проекта для исключения нарушения работы первой копии. »
|
Не работает на Windows Server 2003, Windows Xp Home. В 2003 поиск в tasklist не работает -
tasklist /FO CSV /FI "IMAGENAME eq svchost.exe" /NH выдает "Ошибка: Фильтр поиска не опознан." А на Home не работает потому что в ней нет tasklist.exe, taskkill.exe файлов.
Упростил и добавил поддержку 2003:
Код:
PreExtract="%%P:hidcon:cmd /c \"\"%%T\\KillDuplicate.cmd\" \"%%T\" \"%%M\"\""
KillDuplicate.cmd:
Код:
Cd /d %1
Rd "%SfxVarApiPath%"
For /f "Tokens=1,2 Delims=," %%I In ('TaskList /fo CSV /nh') Do (
If %%I==%2 (
Set /a N+=1
Set PID=%%~J
)
)
If %N% EQU 1 Rd /s /q %1
If %N% GTR 1 TaskKill /pid %PID% /t /f
Проверял на Хр/2003/7/2008 R2/8/8.1/10.