Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


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


Конфигурация

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 898 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 796 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


insombia, Шапка - Показать/скрыть: Справка, руководство, примеры: - Показать/скрыть: Ссылки на примеры скриптов: - Наложение изображений на стандартные кнопки

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 21:39, 24-03-2011 | #1141



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


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

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


Здравствуйте, а как полностью отключить системное меню, то которое открывается при нажатии на иконку, расположенную в левой части заголовка окна (Восстановить, Переместить, Размер, Свернуть, Развернуть, Закрыть)?

Последний раз редактировалось C783RPunk, 25-03-2011 в 12:37.


Отправлено: 12:17, 25-03-2011 | #1142


Ветеран


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

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


Цитата Лександер:
insombia, Шапка - Показать/скрыть: Справка, руководство, примеры: - Показать/скрыть: Ссылки на примеры скриптов: - Наложение изображений на стандартные кнопки »
Пробывал не работает

Отправлено: 12:25, 25-03-2011 | #1143


Ветеран


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

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


Здравствуйте, накидал скрипт для конвертирования строк в различные форматы:
ConvertString.iss

Код: Выделить весь код
[Code]
{===============================================================================}
{ Script name: ConvertString.iss                                                }
{ Script version: 1.1                                                           }
{ Author: Serega, http://forum.oszone.net/member.php?userid=88670               }
{                                                                               }
{ Include this file in project.                                                 }
{ Example:                                                                      }
{ #include "ConvertString.iss"                                                  }
{===============================================================================}
{ Rev 1.1  26.03.2011 22:36:43                                                  }
{   - fixed error is corrected at compilation on the expanded                   }
{     version from Restools;                                                    }
{   - function ClearBom is optimised.                                           }
{ Rev 1.0  25.03.2011 18:58:04 Create                                           }
{===============================================================================}
{                         Supported functions                                   }
{===============================================================================}
{   ANSI ->                                                                     }
{ function AnsiToUtf8(const SourceStr: string): string;                         }
{ function AnsiToUtf7(const SourceStr: string): string;                         }
{ function AnsiToUtf16(const SourceStr: string): string;                        }
{ function AnsiToDos(const SourceStr: string): string;                          }
{ function AnsiToKoi(const SourceStr: string): string;                          }
{ function AnsiToIso(const SourceStr: string): string;                          }
{ function AnsiToMac(const SourceStr: string): string;                          }
{   UTF-7 ->                                                                    }
{ function Utf7ToAnsi(const SourceStr: string): string;                         }
{ function Utf7ToUtf8(const SourceStr: string): string;                         }
{ function Utf7ToUtf16(const SourceStr: string): string;                        }
{ function Utf7ToDos(const SourceStr: string): string;                          }
{ function Utf7ToKoi(const SourceStr: string): string;                          }
{ function Utf7ToIso(const SourceStr: string): string;                          }
{ function Utf7ToMac(const SourceStr: string): string;                          }
{   UTF-8 ->                                                                    }
{ function Utf8ToAnsi(const SourceStr: string): string;                         }
{ function Utf8ToUtf7(const SourceStr: string): string;                         }
{ function Utf8ToUtf16(const SourceStr: string): string;                        }
{ function Utf8ToDos(const SourceStr: string): string;                          }
{ function Utf8ToKoi(const SourceStr: string): string;                          }
{ function Utf8ToIso(const SourceStr: string): string;                          }
{ function Utf8ToMac(const SourceStr: string): string;                          }
{   UTF-16 (Unicode) ->                                                         }
{ function Utf16ToAnsi(const SourceStr: string): string;                        }
{ function Utf16ToUtf7(const SourceStr: string): string;                        }
{ function Utf16ToUtf8(const SourceStr: string): string;                        }
{ function Utf16ToDos(const SourceStr: string): string;                         }
{ function Utf16ToKoi(const SourceStr: string): string;                         }
{ function Utf16ToIso(const SourceStr: string): string;                         }
{ function Utf16ToMac(const SourceStr: string): string;                         }
{   DOS (cp866) ->                                                              }
{ function DosToAnsi(const SourceStr: string): string;                          }
{ function DosToUtf7(const SourceStr: string): string;                          }
{ function DosToUtf8(const SourceStr: string): string;                          }
{ function DosToUtf16(const SourceStr: string): string;                         }
{ function DosToKoi(const SourceStr: string): string;                           }
{ function DosToIso(const SourceStr: string): string;                           }
{ function DosToMac(const SourceStr: string): string;                           }
{   KOI (KOI-8) ->                                                              }
{ function KoiToAnsi(const SourceStr: string): string;                          }
{ function KoiToUtf7(const SourceStr: string): string;                          }
{ function KoiToUtf8(const SourceStr: string): string;                          }
{ function KoiToUtf16(const SourceStr: string): string;                         }
{ function KoiToDos(const SourceStr: string): string;                           }
{ function KoiToIso(const SourceStr: string): string;                           }
{ function KoiToMac(const SourceStr: string): string;                           }
{   ISO (iso-8859) ->                                                           }
{ function IsoToAnsi(const SourceStr: string): string;                          }
{ function IsoToUtf7(const SourceStr: string): string;                          }
{ function IsoToUtf8(const SourceStr: string): string;                          }
{ function IsoToUtf16(const SourceStr: string): string;                         }
{ function IsoToDos(const SourceStr: string): string;                           }
{ function IsoToKoi(const SourceStr: string): string;                           }
{ function IsoToMac(const SourceStr: string): string;                           }
{   MAC ->                                                                      }
{ function MacToAnsi(const SourceStr: string): string;                          }
{ function MacToUtf7(const SourceStr: string): string;                          }
{ function MacToUtf8(const SourceStr: string): string;                          }
{ function MacToUtf16(const SourceStr: string): string;                         }
{ function MacToDos(const SourceStr: string): string;                           }
{ function MacToKoi(const SourceStr: string): string;                           }
{ function MacToIso(const SourceStr: string): string;                           }
{===============================================================================}
{===============================================================================}
#if Ver < 84084736
type
  PAnsiChar = PChar;  // Required for Inno Setup 5.3.0 and lower
#endif

const
  Utf8Bom   = #$EF#$BB#$BF;
  Utf16Bom  = #$FF#$FE;

  CP_ACP    = 0;             { default to ANSI code page }
  CP_OEMCP  = 1;             { default to OEM  code page }
  CP_MACCP  = 2;             { default to MAC  code page }
  CP_UTF16  = 1200;          { UTF-16 translation }
  CP_ISO    = 28595;         { iso-8859-5 translation }
  CP_KOI8   = 20866;         { KOI-8 translation }
  CP_UTF7   = 65000;         { UTF-7 translation }
  CP_UTF8   = 65001;         { UTF-8 translation }

function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD;
  lpMultiByteStr: PAnsiChar; cbMultiByte: Integer;
  lpWideCharStr: PAnsiChar; cchWideChar: Integer): Longint; external 'MultiByteToWideChar@kernel32.dll stdcall';
function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD;
  lpWideCharStr: PAnsiChar; cchWideChar: Integer; lpMultiByteStr: PAnsiChar;
  cbMultiByte: Integer; lpDefaultChar: Integer; lpUsedDefaultChar: Integer): Longint;
    external 'WideCharToMultiByte@kernel32.dll stdcall';

function WideStringToString(const wStr: string; codePage: Word): string;
var
  len: Integer;
begin
  len := WideCharToMultiByte(codePage, 0, wStr, -1, '', 0, 0, 0);
  if len > 0 then
    begin
      SetLength(Result, len-1);
      WideCharToMultiByte(codePage, 0, wStr, -1, Result, Length(Result), 0, 0);
    end;
end;

function StringToWideString(const aStr: string; codePage: Word): string;
var
  len: Integer;
begin
  len := MultiByteToWideChar(codePage, 0, aStr, -1, '', 0);
  if len > 0 then
    begin
      SetLength(Result, (len*2)-2);
      MultiByteToWideChar(codePage, 0, aStr, -1, Result, Length(Result));
    end;
end;

function ClearBom(const s, sig: string): string;
var
  i, n, len: Integer;
begin
  Result := s;
  len := Length(sig);
  n := 0;
  if (len > 0) and (Length(Result) > len) then
    repeat
      for i := 1 to len do
        if Result[1] = sig[i] then
          begin
            Delete(Result, 1, 1);
            Break;
          end;
      n := n + 1;
    until (n = len) or (Result = '');
end;
{===============================================================================}
{===============================================================================}
{   ANSI ->                                                                     }
{===============================================================================}
function AnsiToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_UTF8);
end;

function AnsiToUtf7(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_UTF7);
end;

function AnsiToUtf16(const SourceStr: string): string;
begin
  Result := Utf16Bom + StringToWideString(SourceStr, CP_ACP);
end;

function AnsiToDos(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_OEMCP);
end;

function AnsiToKoi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_KOI8);
end;

function AnsiToIso(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_ISO);
end;

function AnsiToMac(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ACP), CP_MACCP);
end;
{===============================================================================}
{   UTF-7 ->                                                                    }
{===============================================================================}
function Utf7ToAnsi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_ACP);
end;

function Utf7ToUtf8(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_UTF8);
end;

function Utf7ToUtf16(const SourceStr: string): string;
begin
  Result := StringToWideString(SourceStr, CP_UTF7);
end;

function Utf7ToDos(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_OEMCP);
end;

function Utf7ToKoi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_KOI8);
end;

function Utf7ToIso(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_ISO);
end;

function Utf7ToMac(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_UTF7), CP_MACCP);
end;
{===============================================================================}
{   UTF-8 ->                                                                    }
{===============================================================================}
function ConvertUtf8(const SourceStr: string; codePage: Word): string;
var
  wStr: string;
begin
  try
    wStr := ClearBom(SourceStr, Utf8Bom);
    Result := WideStringToString(StringToWideString(wStr, CP_UTF8), codePage);
  finally
    SetLength(wStr, 0);
  end;
end;

function Utf8ToAnsi(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_ACP);
end;

function Utf8ToUtf7(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_UTF7);
end;

function Utf8ToUtf16(const SourceStr: string): string;
begin
  Result := StringToWideString(SourceStr, CP_UTF8);
end;

function Utf8ToDos(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_OEMCP);
end;

function Utf8ToKoi(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_KOI8);
end;

function Utf8ToIso(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_ISO);
end;

function Utf8ToMac(const SourceStr: string): string;
begin
  Result := ConvertUtf8(SourceStr, CP_MACCP);
end;
{===============================================================================}
{   UTF-16 (Unicode) ->                                                         }
{===============================================================================}
function ConvertUtf16(const SourceStr: string; codePage: Word): string;
var
  wStr: string;
begin
  try
    wStr := ClearBom(SourceStr, Utf16Bom);
    Result := WideStringToString(wStr, codePage);
  finally
    SetLength(wStr, 0);
  end;
end;

function Utf16ToAnsi(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_ACP);
end;

function Utf16ToUtf7(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_UTF7);
end;

function Utf16ToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + ConvertUtf16(SourceStr, CP_UTF8);
end;

function Utf16ToDos(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_OEMCP);
end;

function Utf16ToKoi(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_KOI8);
end;

function Utf16ToIso(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_ISO);
end;

function Utf16ToMac(const SourceStr: string): string;
begin
  Result := ConvertUtf16(SourceStr, CP_MACCP);
end;
{===============================================================================}
{   DOS (cp866) ->                                                              }
{===============================================================================}
function DosToAnsi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_ACP);
end;

function DosToUtf7(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_UTF7);
end;

function DosToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_UTF8);
end;

function DosToUtf16(const SourceStr: string): string;
begin
  Result := Utf16Bom + StringToWideString(SourceStr, CP_OEMCP);
end;

function DosToKoi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_KOI8);
end;

function DosToIso(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_ISO);
end;

function DosToMac(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_OEMCP), CP_MACCP);
end;
{===============================================================================}
{   KOI (KOI-8) ->                                                              }
{===============================================================================}
function KoiToAnsi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_ACP);
end;

function KoiToUtf7(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_UTF7);
end;

function KoiToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_UTF8);
end;

function KoiToUtf16(const SourceStr: string): string;
begin
  Result := Utf16Bom + StringToWideString(SourceStr, CP_KOI8);
end;

function KoiToDos(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_OEMCP);
end;

function KoiToIso(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_ISO);
end;

function KoiToMac(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_KOI8), CP_MACCP);
end;
{===============================================================================}
{   ISO (iso-8859) ->                                                           }
{===============================================================================}
function IsoToAnsi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_ACP);
end;

function IsoToUtf7(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_UTF7);
end;

function IsoToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_UTF8);
end;

function IsoToUtf16(const SourceStr: string): string;
begin
  Result := Utf16Bom + StringToWideString(SourceStr, CP_ISO);
end;

function IsoToDos(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_OEMCP);
end;

function IsoToKoi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_KOI8);
end;

function IsoToMac(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_ISO), CP_MACCP);
end;
{===============================================================================}
{   MAC ->                                                                      }
{===============================================================================}
function MacToAnsi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_ACP);
end;

function MacToUtf7(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_UTF7);
end;

function MacToUtf8(const SourceStr: string): string;
begin
  Result := Utf8Bom + WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_UTF8);
end;

function MacToUtf16(const SourceStr: string): string;
begin
  Result := Utf16Bom + StringToWideString(SourceStr, CP_MACCP);
end;

function MacToDos(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_OEMCP);
end;

function MacToKoi(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_KOI8);
end;

function MacToIso(const SourceStr: string): string;
begin
  Result := WideStringToString(StringToWideString(SourceStr, CP_MACCP), CP_ISO);
end;
{===============================================================================}

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 26-03-2011 в 19:55. Причина: 1) Исправлена ошибка при компиляции на расширенной версии; 2) Оптимизирована функция ClearBom

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

Отправлено: 16:00, 25-03-2011 | #1144


Ветеран


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

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


Цитата C783RPunk:
как полностью отключить системное меню »
Код: Выделить весь код
procedure InitializeWizard();
begin
  WizardForm.BorderStyle := bsDialog;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 16:16, 25-03-2011 | #1145


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата ryabis:
Как в скрипте вызвать функцию из WinAPI? Функция GetFileVersionInfo.
Знаю, что в Делфях это делается через подключения в uses модуля Windows.
Как это сделать в InnoSetup??? »
ryabis, если еще актуально определение полей версии файла, то вот вариант:
Код: Выделить весь код
[Code]
#ifdef UNICODE
  #define A "W"
#else
  #define A "A"
#endif
function GetFileVersionInfoSize(lptstrFilename: String; lpdwHandle: Integer): Integer;
external 'GetFileVersionInfoSize{#A}@version.dll stdcall delayload';

function GetFileVersionInfo(lptstrFilename: String; dwHandle, dwLen: Integer; var lpData: Byte): Boolean;
external 'GetFileVersionInfo{#A}@version.dll stdcall delayload';

function VerQueryValue(var pBlock: Byte; lpSubBlock: String; var lplpBuffer: DWord; var puLen: Integer): Boolean;
external 'VerQueryValue{#A}@version.dll stdcall delayload';

function GetFileVerInfo(FileName, VerName: String): String;
//VerName:
//Comments, LegalCopyright, CompanyName, FileDescription, FileVersion, ProductVersion,
//InternalName, LegalTrademarks, OriginalFilename, ProductName, PrivateBuild, SpecialBuild
var
  dwLen, puLen, i: Integer;
  lpFileVerInfo: array of Byte;
  lplpBufferCP, lplpBufferVN: DWord;
  LangCodepage: String;
begin
  Result := '';
  if FileExists(FileName) then
  begin
    dwLen := GetFileVersionInfoSize(FileName, 0);
    if dwLen > 0 then
    begin
      SetArrayLength(lpFileVerInfo, dwLen);
      if GetFileVersionInfo(FileName, 0, dwLen, lpFileVerInfo[0]) then
      begin
        if VerQueryValue(lpFileVerInfo[0], '\VarFileInfo\Translation', lplpBufferCP, puLen) then
        begin
          LangCodepage := Format('%.2x%.2x%.2x%.2x', [lpFileVerInfo[(dwLen div 2)-5], lpFileVerInfo[(dwLen div 2)-6], lpFileVerInfo[(dwLen div 2)-3], lpFileVerInfo[(dwLen div 2)-4]]);
          if VerQueryValue(lpFileVerInfo[0], Format('\%s\%s\%s', ['StringFileInfo', LangCodepage, VerName]), lplpBufferVN, puLen) then
          begin
            i := (dwLen div 2) + lplpBufferVN - lplpBufferCP - 6;
            repeat
              if lpFileVerInfo[i] <> 0 then
              begin
                SetLength(Result, Length(Result)+1);
                Result[Length(Result)] := Chr(lpFileVerInfo[i]);
              end;
            i := i + 1;
            #ifdef UNICODE
            until i > (dwLen div 2) + lplpBufferVN - lplpBufferCP - 8 + puLen;
            #else
            until lpFileVerInfo[i] = 0;
            #endif
          end;
        end;
      end;
    end;
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:15, 25-03-2011 | #1146


Новый участник


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

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


Serega, спс
А подскажите пожалуйста еще, как на странице "приветствие установки программы" и "завершение установки" упорядочить текст по центру (сверху-снизу и по бокам), для стандартного скина.

Отправлено: 17:17, 25-03-2011 | #1147


Аватара для EvilAlex

Новый участник


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

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


и как сделать так чтобы, файлы сетапа не в куче в папке с игрой были, а в папке сетап например ...

Так:
игра/игровые файлы
игра/игровые файлы
игра/игровые файлы
игра/сетап/файлы сетапа

А то у меня так:
игра/игровые файлы
игра/игровые файлы
игра/игровые файлы
игра/файлы сетапа

Последний раз редактировалось EvilAlex, 25-03-2011 в 22:27.


Отправлено: 22:20, 25-03-2011 | #1148


Ветеран


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

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


Цитата EvilAlex:
были, а в папке сетап например ... »
Цитата EvilAlex:
и как сделать так чтобы, файлы сетапа не в куче в папке с игрой были, а в папке сетап например ...
Так:
игра/игровые файлы
игра/игровые файлы
игра/игровые файлы
игра/сетап/файлы сетапа
А то у меня так:
игра/игровые файлы
игра/игровые файлы
игра/игровые файлы
игра/файлы сетапа »
Если я тебя правильно понял то в настройках istool в команде опции-выходной каталог можно выбрать папку в которую сохранять установочные файлы

Отправлено: 23:03, 25-03-2011 | #1149


Аватара для EvilAlex

Новый участник


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

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


insombia, я имелл ввиду что при установке, файлы игры и файлы инсталла в перепешку, а мне надо чтобы инсталл создовал дополнительную папку в папке с игрой и в эту папку распаковывал свои файлы ...

Как сейчас у меня:
http://i013.radikal.ru/1103/7c/6c07824867fd.jpg

Как хотелось бы:
http://s004.radikal.ru/i205/1103/94/5fc99cbb20ff.jpg

Отправлено: 10:02, 26-03-2011 | #1150



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход