Имя пользователя:
Пароль:
 

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


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

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


Цитата K.A.V.:
Переименовать файл активного процесса нельзя »
Но ведь этот файл можно скопировать , а потом скопированный файл переименовать и далее его запускать, закрыв исходный файл.
И можно обойтись без внешнего EXE...
Вот так у меня работает :
Код: Выделить весь код
OutFile "file.exe"
!include "LogicLib.nsh"

Function .onInit
${If} ${FileExists} "$EXEDIR\file1.exe"
Call RunFile1
${Else}
CopyFiles "$EXEDIR\file.exe" "$EXEDIR\file1.exe"
${EndIf}
FunctionEnd

Function RunFile1
MessageBox MB_OK "Выполняется file1"
; здесь код действий установки
FunctionEnd

Function .onInstSuccess
Sleep 300
Delete "$EXEDIR\file.exe"
nsRestart::FindProcess "file1.exe"
Pop "$1"
${If} $1 == 0
nsRestart::KillProcess "file1.exe"
${Else}
Sleep 300
Exec "$EXEDIR\file1.exe"
${EndIf}
FunctionEnd

Section
SetAutoClose true
SectionEnd
Установочное хозяйство помещаем в Function RunFile1

Последний раз редактировалось MKN, 17-07-2014 в 11:56.

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

Отправлено: 11:34, 17-07-2014 | #1242