Artem_Butenko Цитата: если исходники находятся рядом с исполнительным файлом инсталлятора
-- а как инсталлятор определит, что находящиеся рядом файлы являются исходниками? Если предположить, что исходники представляют собой папку определенного имени (напр. BOBO) и в исходниках всегда есть файл mysoft.exe, то тогда сложностей нет. Достаточно в исходный скрипт добавить процедуру пропуска страницы. [more=Пример][no]
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DirExistsWarning=no
DefaultDirName={pf}\My Program
[Files]
Source: {code:SrcDir}\*; DestDir: {app}; Flags: external
[Code]
var
Page: TInputDirWizardPage;
DataDir: String;
function SrcDir(Param: String): String;
begin
Result := DataDir;
end;
procedure InitializeWizard();
begin
Page := CreateInputDirPage(wpUserInfo,
'Select Data Location', 'Where should data files be stored?',
'Data files will be stored in the following folder.'#13#10#13#10 +
'To continue, click Next. If you would like to select a different folder, click Browse.',
False, '');
Page.Add('');
Page.Values[0] := ExpandConstant('{src}');
end;
function CheckSource(path: string): boolean;
begin
Result := FileExists(path);
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if CurPageID = Page.ID then
if Not CheckSource(Page.Values[0] + '\mysoft.exe') then
Result:= False
else
DataDir := Page.Values[0];
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = Page.ID) and
CheckSource(ExpandConstant('{src}\BOBO\mysoft.exe')) then
begin
DataDir:= ExpandConstant('{src}\BOBO');
Result:= True;
end;
end; [/no][/more]
Добавлено: Victor_Dobrov Цитата: я решил проблему с изменением скрипта препроцессором
-- да, но все равно, поиск осуществляется только выше точки вызова. А проблема, насколько я понял, была именно в том, что искать необходимо ниже (в секции [Tasks]):
Цитата: Проблема в том, что Find ищет только до текущей строки, а секция [Tasks] расположена ниже.
Либо я не понял задачи. Впрочем, если результат тебя устраивает, значит все в порядке