Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

articlebot (13-10-2013 23:33): продолжение темы - №15
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268

   

batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Inno Setup часть 14

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
 
Последние версии:
Inno Setup QuickStart Pack (ansi) 5.5.3 [30.01.2013]
Скачать (1.9 Mb)
Inno Setup QuickStart Pack (unicode) 5.5.3 [30.01.2013]
Скачать (2.2 Mb)
Что нового? | Все сборки
Русский язык для Inno Setup версии 5.5.x от vadimsva [02.06.2012]
Скачать
Русский язык для Inno IDE версии 1.0.0.0078 от vadimsva
Скачать |
 
Расширенная версия от китайских собратьев. Домашняя страница ResTools
Inno Setup Compiler 5.5.0-5.1 build 120808
Скачать (2.98 Mb) | Зеркало (2 Mb) - убраны картинки для уменьшения размера архива
Что нового?
Inno ISCmplr Setup 5.5.1 build 120726
Скачать (1.73 Mb) | Зеркало (1.7 Mb)
Что нового?
Добавляет списку компонентов возможность сворачивать дочерние элементы. Содержит более удобный редактор, кроме того, компилятор имеет множество других возможностей и новых функций. На сайте автора также есть дополнительные библиотеки.
Русский язык для Inno Setup Enhanced (Restools) версии 5.4.x (ansi и unicode) от vadimsva
Скачать
 
Русская справка к версии 5.5.3, автор перевода BagIra, bugron | Chm-версия
 
 

Документация, FAQ, и различные примеры для Inno Setup - Здесь можно найти различную документацию, примеры, архивы веток InnoSetup для оффлайн просмотра, и т.д.
 
Дополнительные библиотеки для Inno Setup - InnoTools Downloader, коллекция DLL файлов, распаковка архивов 7-zip и FreeArc и т.д.
 
Дополнительные утилиты для Inno Setup - сюда входят различные распаковщики, надстройки над Inno Setup, различные генераторы скриптов, утилита объединения скриптов и т.д.
 
Скрипты инсталляторов для игр - В этом разделе можно найти различные обложки и скрипты инсталляторов для игр.  
 
Скрипт для добавления ярлыков в Game Explorer (работает только в Windows 7)

Родственные темы:

 
Inno Setup плюс внешние упаковщики - обсуждение FreeArc+Inno, Precomp+Inno, 7zip+Inno и Inno+остальные внешние упаковщики.
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.

Примечание для всех участников

Правила топика посвященному Inno Setup  
 
Перед тем, как задать вопрос: Первый вариант: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Второй вариант: для экономии трафика и для более удобного поиска, скачайте оффлайн версию форума для просмотра в разделе Документация.
Большинство типовых задач уже решались, причем неоднократно!  
Пожалуйста, не захламляйте тему и используйте поиск, этим вы избавите тему от флуда!

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 20:48 20-05-2011 | Исправлено: sjwrec, 14:38 08-09-2013
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нашел функцию добавления ярлыков в taskband в win7 (панель с ярлыками возле кнопки пуск)

Код:
 
const
    LOAD_LIBRARY_AS_DATAFILE = $2;
 
function LoadLibraryEx(lpFileName: String; hFile: THandle; dwFlags: DWORD): THandle;
    external 'LoadLibraryExA@kernel32.dll stdcall';
function LoadString(hInstance: THandle; uID: SmallInt; var lpBuffer: Byte; nBufferMax: Integer): Integer;
    external 'LoadStringA@user32.dll stdcall';
 
function PinToTaskbarWin7(Filename: String): Boolean;
var
    hInst: THandle;
    buf: array [0..255] of byte;
    i: byte;
    strVerb, s: String;
    objShell, colverbs: Variant;
begin
    if not FileExists(Filename) then Exit;
    if (GetWindowsVersion shr 24 = 6) and ((GetWindowsVersion shr 16) and $FF = 1) then
    begin
        hInst := LoadLibraryEx(ExpandConstant('{sys}\shell32.dll'), 0, LOAD_LIBRARY_AS_DATAFILE);
        for i := 0 to LoadString(hInst, 5386, buf[0], 255)-1 do strVerb := strVerb + Chr(Buf[i]);
        FreeDLL(hInst);
        try
            objShell := CreateOleObject('Shell.Application');
        except
            ShowExceptionMessage;
            Exit;
        end;
        colVerbs := objShell.Namespace(ExtractFileDir(Filename)).ParseName(ExtractFileName(Filename)).Verbs;
        for i := colVerbs.Count downto 1 do if colVerbs.Item[i].Name = strVerb then
        begin
            colVerbs.Item[i].DoIt;
            Result := True;
        end;
    end;
end;
 
procedure InitializeWizard();
begin
if PinToTaskbarWin7('c:\windows\notepad.exe') then
    MsgBox('ok', mbInformation, MB_OK)
  else
    MsgBox('no', mbInformation, MB_OK);
end;
 

 
но он вешает весь установщик не зависимо от того, откуда я запускаю эту функцию.
есть у кого-нибудь рабочий код?

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 14:17 20-11-2011 | Исправлено: TaTTDoGG, 14:26 20-11-2011
321new



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, научите плз делать репаки. Хотя бы просто опциональные установщики, в которые можно добавить галочки, типа: Установить ярлык на раб. стол, Установить ярлык на панель быстрого запуска, Установить DirectX, Установить Visual C++ и т.д. а то совсем новичёк в этом деле, почти полный 0

Всего записей: 452 | Зарегистр. 03-11-2011 | Отправлено: 14:46 20-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ребята, научите плз делать репаки. Хотя бы просто опциональные установщики, в которые можно добавить галочки, типа: Установить ярлык на раб. стол, Установить ярлык на панель быстрого запуска, Установить DirectX, Установить Visual C++ и т.д. а то совсем новичёк в этом деле, почти полный 0
начни с использования InnoIDE (скачивается при установке QuickStart Pack отсюда: http://www.jrsoftware.org/isdl.php ). Там графический интерфейс. добавляешь какие надо компоненты, что нужно заносить в реестр и т.д.
а потом оно само по нарастающей пойдет

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 15:00 20-11-2011
AtariUser

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[Обновление]The Elder Scrolls V: Skyrim
 
Версия скрипта: 1.1
 
Описание:
Обновление этого скрипта
 
Что нового:
- Улучшена страница установки;
- Улучшена финишная страница;
- Теперь кнопка "Отмена" на странице установки отображается нормально;
- Удален лишний неиспользуемый код из скрипта;
- И так, по мелочам;
 

 
Добавлена возможность использования скинов!
 


 
Скачать:
Ссылка

Всего записей: 8 | Зарегистр. 21-09-2011 | Отправлено: 15:35 20-11-2011 | Исправлено: AtariUser, 16:20 20-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
и ещё вопрос. при перемещении окна, процесс распаковки арк архивов останавливается. отпускаю окно - продолжается
как исправить?
 
Добавлено:
AtariUser
ваша функция MbOrTb работает не правильно...
 
вот немного подфиксил:

Код:
Function MbOrTb(Byte: Extended): String;
begin
  if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else
    if Byte/1024 < 1024 then Result:= NumToStr(Byte/1024) + ' Гб' else
      Result:= NumToStr(Byte/(1024*1024)) + ' Тб'
end;


Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 22:23 20-11-2011
CKILL

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TaTTDoGG
PinToTasckbar.vbs

Код:
 
[Files]
Source: PinToTasckbar.vbs; DestDir: {tmp}; Flags: deleteafterinstall; MinVersion: 0,6.0
[Run]
Filename: {tmp}\PinToTasckbar.vbs; Parameters: """{app}\прога.exe"""; Flags: shellexec;  MinVersion: 0,6.0
 

Всего записей: 194 | Зарегистр. 17-02-2009 | Отправлено: 00:34 21-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CKILL
спасибо. заработало когда сохранил в 1251 кодировке ))
а через Exec его как-то запустить можно?
 

Код:
Exec(ExpandConstant('{tmp}')+'\PinToTaskbar.vbs', '"{app}\CA.exe"', ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
не работает. ни ошибок, ни ярлыка
 
Добавлено:
всё. туплю )))

Код:
Exec('wscript.exe', '"'+ExpandConstant('{tmp}\PinToTaskbar.vbs')+'" "'+ExpandConstant('{app}\CA.exe')+'"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);

 
Добавлено:
остался вопрос с перемещение окна.

Цитата:
и ещё вопрос. при перемещении окна, процесс распаковки арк архивов останавливается. отпускаю окно - продолжается  
как исправить?

юзаю скрит распаковки arc отсюда: http://forum.ru-board.com/topic.cgi?forum=5&topic=33457&start=780#9 (кстати в нём зависает тоже)

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 00:43 21-11-2011 | Исправлено: TaTTDoGG, 01:56 21-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Devils_Night по поводу проверки версии. в шапке в доп либах есть dll'ка скачивающая файл с серва. скачал txt с номером последней версии, ну а дальше сам знаешь
 
теперь по установке драйвера
тебе надо это делать не в секции Run
а в секции Code в следующем обработчике:

Код:
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
    wpInstalling: begin
      //тут устанавливаем драйвер      
    end;
end;

вместо wpInstalling помоему будет работать если вписать wpPreparing

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 09:20 21-11-2011
AtariUser

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ваша функция MbOrTb работает не правильно...  

TaTTDoGG,
Ну почему же? Результат один и тот же, разница лишь в лишнем коде. А так спасибо за замечание.

Всего записей: 8 | Зарегистр. 21-09-2011 | Отправлено: 18:23 21-11-2011
fantoma61s

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как создать пустую папку не в app, не в pf и т.д., а там где захочет user? Т.е. как перед созданием папки вызвать диалог выбора и создания директории?  
 
Спасибо.

Всего записей: 8 | Зарегистр. 28-04-2011 | Отправлено: 19:16 21-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AtariUser
А вот у меня от размера 4043мб ваш код возвращает 3гб. А ведь результат примерно должен быть 3,9гб а это почти 4 )))
 
Добавлено:
кароч окугление в вашем коде лишнее
 
Добавлено:
fantoma61s
Так ведь путь можно изменить...или вы хотите чтобы при переходе на страницу выбора папки выскакивало дерево дисков??

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 22:13 21-11-2011
fantoma61s

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так ведь путь можно изменить...или вы хотите чтобы при переходе на страницу выбора папки выскакивало дерево дисков??

 
Да, именно так. Еще я хочу, чтобы можно было не только выбрать, но и создать директорию.

Всего записей: 8 | Зарегистр. 28-04-2011 | Отправлено: 22:27 21-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fantoma61s
Дерево дисков можно ортисовать через компонент. А если укажите не существующую папку, то инсталятор сам ее создаст. Код дерева дисков добавлю через пару часов. Я ща просто с телефона пишу
 
upd: вот код

Код:
var
TDV: TFolderTreeView;
TFV: TStartMenuFolderTreeView;
 
procedure TDVOnChange(Sender: TObject);
begin
WizardForm.DirEdit.Text:= AddBackslash(TDV.Directory)+'{#MyAppName}';
end;
 
procedure TFVOnChange(Sender: TObject);
begin
WizardForm.GroupEdit.Text:= AddBackslash(TFV.Directory)+'{#MyAppName}';
end;
 
procedure DisksTree();
begin
TDV:= TFolderTreeView.Create(WizardForm);
TDV.Top:= WizardForm.DirEdit.Top+28;
TDV.Width:= 417;
TDV.Height:= 88;
TDV.OnChange:= @TDVOnChange;
TDV.Parent:= WizardForm.SelectDirPage;
 
TFV:= TStartMenuFolderTreeView.Create(WizardForm);
TFV.Top:= WizardForm.GroupEdit.Top+28;
TFV.Width:=417;
TFV.Height:= 100;
TFV.SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{userstartup}'),ExpandConstant('{commonstartup}'));
TFV.OnChange:= @TFVOnChange;
TFV.Parent:= WizardForm.SelectProgramGroupPage;
end;

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 22:41 21-11-2011 | Исправлено: TaTTDoGG, 00:02 22-11-2011
fantoma61s

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое Вам спасибо. Будем пробовать.

Всего записей: 8 | Зарегистр. 28-04-2011 | Отправлено: 00:18 22-11-2011
AtariUser

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[Обновление]The Elder Scrolls V: Skyrim
 


 
Версия скрипта: 1.2
 
Что нового:
- Изменена страница установки;
- Удален лишний неиспользуемый код;  
- Исправлена ошибка при удалении;
- И так, по мелочам;  
 
Старые версии:
- 1.0
- 1.1
 
Скачать:
Ссылка

Всего записей: 8 | Зарегистр. 21-09-2011 | Отправлено: 19:59 22-11-2011
AleSasha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
 
Подскажите, пожалуйста, как вместо стандартного текста в ReadyLabel, написать свой текст.
 
Спасибо всем.
 

Всего записей: 46 | Зарегистр. 10-04-2009 | Отправлено: 22:46 22-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Здравствуйте!  
   
 Подскажите, пожалуйста, как вместо стандартного текста в ReadyLabel, написать свой текст.  
   
 Спасибо всем.


Код:
 
[code]
procedure InitializeWizard;
begin
   WizardForm.ReadyLabel.Caption:='новый текст';
end;
 


Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 09:04 23-11-2011
Devils_Night



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TaTTDoGG

Цитата:

Код:
procedure CurPageChanged(CurPageID: Integer);  
 begin  
 case CurPageID of  
     wpInstalling: begin  
       //тут устанавливаем драйвер
     end;  
 end;

Я наверно должен угадать? Не, метод телепата у меня не работает!
Что значит  //тут устанавливаем драйвер? Так должно получится?

Код:
procedure CurPageChanged(CurPageID: Integer);  
 begin  
 case CurPageID of  
     wpInstalling: begin  
       {app}/driver.exe
     end;  
 end;
конечно извини, но я не мастак в этих прелестях.
 
 
Ещё вопрос, при установке не записываются записи реестра, как решить?
Код

Всего записей: 16 | Зарегистр. 02-10-2011 | Отправлено: 09:23 23-11-2011 | Исправлено: Devils_Night, 01:42 25-11-2011
TaTTDoGG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;


Код:
procedure CurPageChanged(CurPageID: Integer);
var
n:integer;  
  begin  
  case CurPageID of  
      wpInstalling: begin  
        Exec(ExpandConstant('{app}/driver.exe'), '',ExpandConstant('{app}'), sw_Hide, ewWaitUntilTerminated, n);
      end;  
  end;

 
ps: я тоже не телепат чтобы знать какой вам там драйвер установить надо...
 
теперь по службе:
раз отказано в доступе значит нельзя ))
я бы не делал через реестр...
можно добавить службу использую стандартные средства windows, а именно утилиты SC.exe http://www.windowsfaq.ru/content/view/84/37/
будет выглядеть примерно так:

Код:
Exec(ExpandConstant('{sys}/sc.exe'), 'service_name create binPath="'+ExpandConstant('{app}\service.exe')+'"',ExpandConstant('{sys}'), sw_Hide, ewWaitUntilTerminated, n);

Всего записей: 171 | Зарегистр. 02-04-2010 | Отправлено: 11:33 23-11-2011 | Исправлено: TaTTDoGG, 11:42 23-11-2011
Devils_Night



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ps: я тоже не телепат чтобы знать какой вам там драйвер установить надо...
Извиняюсь, я просто не понял что имелось ввиду, сейчас вроде начинаю понимать, если  

Код:
Exec(ExpandConstant('{app}/driver.exe'), '',ExpandConstant('{app}'), sw_Hide, ewWaitUntilTerminated, n);
запускает инсталятор driver.exe, то это то самое.
 

Цитата:
можно добавить службу использую стандартные средства windows, а именно утилиты SC.exe
это мне как бы тоже не очень понятно, собственно нужно что бы служба service.exe управлялась через Службы, т.е остановить запустить, и.т.д, что бы при установке она добавлялась в службы, а при деинсталяции удалялась.
Немного поясню: Служба является чем то вроде заводного ключа, ну т.е эта служба определяет устройство, если это то устройство, то служба запускает ПО для него, по этому оно в любом случае должно висеть, ну и при ненадобности остановить.
Я просто незнаю как поведёт себя

Код:
Exec(ExpandConstant('{sys}/sc.exe'), 'service_name create binPath="'+ExpandConstant('{app}\service.exe')+'"',ExpandConstant('{sys}'), sw_Hide, ewWaitUntilTerminated, n);
, по этому решил через реестр.
 
Спасибо.

Всего записей: 16 | Зарегистр. 02-10-2011 | Отправлено: 12:15 23-11-2011 | Исправлено: Devils_Night, 12:16 23-11-2011
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
articlebot (13-10-2013 23:33): продолжение темы - №15


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru