Скрипты Inno Setup. Помощь и советы [часть 8]

Ответить
 • Просмотры: 14
Аватара пользователя
kotyarko@fb

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение kotyarko@fb »

AlexM22204, в inno setup файлы распакованные в temp они сами удаляются после завершения процесса исполняемого файла
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
Николай_Николаич@vk

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение Николай_Николаич@vk »

Alex22204, не уверен, но может быть:

[Files]

Source: *.*; DestDir: {tmp}\InstallFile; Flags: сами напишите;



[Run]

Дальше сами...
Аватара пользователя
kotyarko@fb

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение kotyarko@fb »

Подскажите пож. в локализованной винде папка Documents отображается под названием Мои документы.

Возможно ли средствами Inno Setup выполнить переименование папки Мои документы в Documents?
Аватара пользователя
Николай_Николаич@vk

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение Николай_Николаич@vk »

ROMKA-1997, на Inno Setup не знаю. Батник (.bat) напиши и в секции [Run] пропиши путь к батнику с флагом /s или -silent, -verysilent.
Аватара пользователя
kotyarko@fb

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение kotyarko@fb »

Цитата PlanktoN:



Батник (.bat) напиши
Скрипты Inno Setup. Помощь и советы [часть 8]




в Inno Setup знания базовые а в написании .bat ещё не практиковался.
Аватара пользователя
Snoopak96

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение Snoopak96 »

Николай_Николаич@vk,



код

[spoiler]Код:
[/spoiler]

Код: Выделить всё

[setup]
appname=test
appvername=test 1.0
defaultdirname={sd}\test
[code]
type
   TSHFileOpStruct =  record
     Wnd: HWND;
     wFunc: UINT;
     pFrom: PAnsiChar;
     pTo: PAnsiChar;
     fFlags: Word;
     fAnyOperationsAborted: BOOL;
     hNameMappings: HWND;
     lpszProgressTitle: PAnsiChar;
   end;
const
   FO_MOVE                    = $0001;
   FO_COPY                    = $0002;
   FOF_SILENT                 = $0004;
   FOF_NOCONFIRMATION         = $0010;
   FOF_FILESONLY              = $0080;
   FOF_NOCONFIRMMKDIR         = $0200;
function SHFileOperation(const lpFileOp: TSHFileOpStruct):Integer; external 'SHFileOperation@shell32.dll stdcall';
function BackupDir(const fromDir, toDir: AnsiString; IsMove: Boolean): Boolean;
var
  fos: TSHFileOpStruct;
  _fromDir, _toDir: AnsiString;
  SR: TFindRec;
  res: Boolean;
begin
    ForceDirectories(toDir);
  if IsMove then
    fos.wFunc  := FO_MOVE else
    fos.wFunc  := FO_COPY;
    fos.fFlags := FOF_FILESONLY or FOF_SILENT or
               FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR;
    _fromDir:= AddBackslash(fromDir);
    _toDir  := AddBackslash(toDir);
  if (Length(fromDir) = Length(_fromDir)) then
    begin
        res:= FindFirst(_fromDir + '*', SR);
      try
        while res do
        begin
          if (SR.Name  '') and (SR.Name  '.') and (SR.Name  '..') then
          begin
            if SR.Attributes = FILE_ATTRIBUTE_DIRECTORY then
              begin
                _fromDir:= _fromDir + SR.Name + #0#0;
                _toDir  := _toDir + #0#0;
                fos.pFrom  := PAnsiChar(_fromDir);
                fos.pTo    := PAnsiChar(_toDir);
              end else
              begin
                _fromDir:= _fromDir + SR.Name + #0#0;
                _toDir  := _toDir   + SR.Name + #0#0;
                fos.pFrom  := PAnsiChar(_fromDir);
                fos.pTo    := PAnsiChar(_toDir);
              end;
                Result := (0 = ShFileOperation(fos));
                _fromDir:= ExtractFilePath(_fromDir);
                _toDir:= ExtractFilePath(_toDir);
          end;
          res := FindNext(SR);
        end;
      finally
        FindClose(SR);
      end;
    end else
    begin
      _fromDir:= RemoveBackslashUnlessRoot(_fromDir) + #0#0;
      _toDir  := RemoveBackslashUnlessRoot(_toDir)   + #0#0;
      fos.pFrom  := PAnsiChar(_fromDir);
      fos.pTo    := PAnsiChar(_toDir);
      Result := (0 = ShFileOperation(fos));
    end;
end;
procedure SendFileToSubFolders(ScanDir, InFile: string);
var
 TFR: TFindRec;
begin
 if FindFirst(AddBackslash(RemoveBackslash(ScanDir)) + '*', TFR) then
  try
   repeat
    if (TFR.Name  '.') and (TFR.Name  '..') then
     if TFR.Attributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then begin
        FileCopy(InFile, AddBackslash(RemoveBackslash(ScanDir)) + TFR.Name + '\' + ExtractFileName(InFile), False);
       end;
   until not FindNext(TFR);
  finally
   FindClose(TFR);
  end;
end;
procedure SendDirToSubFolders(ScanDir, InDir: string);
var
 TFR: TFindRec;
begin
 if FindFirst(AddBackslash(RemoveBackslash(ScanDir)) + '*', TFR) then
  try
   repeat
    if (TFR.Name  '.') and (TFR.Name  '..') then
     if (TFR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
         BackupDir(AddBackslash(RemoveBackslash(InDir)), AddBackslash(RemoveBackslash(ScanDir)) + TFR.Name + '\' + ExtractFileName(InDir), false);
   until not FindNext(TFR);
  finally
   FindClose(TFR);
  end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
  //Для файла
//  if CurStep = ssPostInstall then SendFileToSubFolders(ExpandConstant('{app}\1'), ExpandConstant('{sd}\spyhunter.log'));
  //Для папки
  if CurStep = ssPostInstall then SendDirToSubFolders(ExpandConstant('{app}\1'), ExpandConstant('{sd}\sh4ldr'));
end;
Аватара пользователя
svs23

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение svs23 »

Цитата icetanker:



подскажите как вывести табличку
Скрипты Inno Setup. Помощь и советы [часть 8]




В смысле табличку? Типа такого?

Код:

Код: Выделить всё

[setup]
appname=app
appvername=app v1.0
DefaultDirName={sd}\app
[Files]
Source: compiler:license.txt; DestDir: {app}; AfterInstall: ShowMsg;
[code]
procedure ShowMsg;
begin
 MsgBox('Файл установлен.', mbInformation, MB_OK);
end;
Аватара пользователя
svs23

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение svs23 »

Кстати, не подскажете, давно искал пример двойного прогресс бара (Один по файловый, второй - общий прогресс), но никак не мог найти.

Есть ли таковой?
Аватара пользователя
Николай_Николаич@vk

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение Николай_Николаич@vk »

Romka-1997, команда help в помощь.
Аватара пользователя
OldGamer

Re: Скрипты Inno Setup. Помощь и советы [часть 8]

Сообщение OldGamer »

Всем привет!

Подскажите, пожалуйста, как изменить стандартное окно выбора языков установки?

Нужно точно так, как на
скриншоте


1. В шапке - название программы;

2. "Выберите язык установщика" по-английски и по-русски в 2 строки;

3. Названия языков чтоб отображались через "/".
Ответить

Вернуться в «Автоматическая установка приложений»