2015-07-26 2 views
1

Я хочу проверить, есть ли файл перед тем, как его извлечь, потому что, если есть такая установка файла, необходимо остановить. Является ли это возможным?Проверить состояние перед извлечением файлов inno

+0

Вы имеете в виду файл из архива настройки (условно добавляется в архив установки, например), или внешний файл (хранится где-то на диске)? И когда вы хотите сделать эту проверку (до того, как мастер покажет, до начала установки или ...)? – TLama

+0

Прежде, чем начнется инсталляция, но я только нашел способ, я собираюсь опубликовать его. В любом случае, спасибо. – Cypert

ответ

2

Я только что нашел способ; Я использовал метод события CurStepChanged и жду там CurStep=ssInstall, который указывает, что процесс установки вот-вот начнется. В то время я проверить, если файл существует, и если да, то я завершить процесс установки:

[Code] 
procedure ExitProcess(uExitCode: UINT); 
    external '[email protected] stdcall'; 

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssInstall then 
    begin 
    if FileExists(ExpandConstant('{app}\.versionC204v1')) then 
    begin 
     MsgBox('A patched version detected. Setup will now exit.', mbInformation, MB_OK); 
     ExitProcess(0); 
    end; 
    end; 
end; 
+1

Возможно, вы захотите вернуть код выхода, отличный от 0, поскольку Inno Setup (как и многие другие программы) использует код выхода 0 для указания успеха. – TLama

+1

Хорошо, я сделаю это. Спасибо. И еще раз спасибо за редактирование кода. – Cypert

Смежные вопросы