![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Скрипты Inno Setup. Помощь и советы [часть 7]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Отправлено: 11:48, 10-03-2014 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать Dodakaedr, и как организовать?
|
------- Отправлено: 21:13, 04-01-2015 | #2251 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 148
|
Профиль | Отправить PM | Цитировать habib2302, интересно как должны отвечать тебе без скрипта. 8 гб - что же там?
|
Отправлено: 18:59, 05-01-2015 | #2252 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать sergey3695, то я запаковываю Adobe Master Collection для лучшего сжатия в запакованном он весит 7.62 а без запаковки 11.5
Скрытый текст
; Скрипт создан через Мастер Inno Setup Script. ; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP! #define MyAppName "Adobe Creative Suite 6 Master Collection" #define MyAppVersion "7.0.0.324" #include "WinTB.iss" #include "botva2.iss" [Setup] ; Примечание: Значение AppId идентифицирует это приложение. ; Не используйте одно и тоже значение в разных установках. ; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.) AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} DefaultGroupName={#MyAppName} AllowNoIcons=true DefaultDirName={tmp}\{#MyAppName} OutputBaseFilename=Adobe Creative Suite 6 Master Collection SetupIconFile=ico.ico Compression=lzma/Ultra64 SolidCompression=false InternalCompressLevel=Ultra64 DiskSpanning=true DiskSliceSize=1572864000 ShowLanguageDialog=yes SlicesPerDisk=1 RawDataResource=Botva:botva2.dll|b2p:b2p.dll|Logo:logo.png|bPic:bPic.png|LiPic:LiPic.png|aPic:aPic.png AppModifyPath={app} VersionInfoProductName={#MyAppName} DirExistsWarning=no DisableReadyPage=true AppID={#MyAppName} VersionInfoDescription={#MyAppName} RePack by Xabib AppCopyright=Xabib © 2015 VersionInfoCopyright=Xabib © 2015 DisableFinishedPage=true UninstallDisplayName={#MyAppName} ComponentsListTVStyle=true ShowComponentSizes=false DisableProgramGroupPage=yes InfoBeforeFile=Info.rtf DisableDirPage=yes Uninstallable=false CreateAppDir=true ReserveBytes=0 [Languages] Name: "Russian"; MessagesFile: "Russian.isl" [Files] ;Файлы распаковываемые в папку с игрой. Необходимы для деинсталлятора; Source: {app}\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Source: WinTB.dll; Flags: dontcopy; Source: ico.ico; DestDir: "{app}"; Flags: ignoreversion; ; Примечание: Не используйте "Flags: ignoreversion" для системных файлов [Run] Filename: {win}\explorer.exe; Parameters: {app}\Crack; Flags: NoWait; Filename: {app}\Crack\Activation_Keygen.exe; Flags: NoWait; Filename: {sys}\notepad.exe; Parameters: {app}\Crack\readme.txt; Flags: NoWait; Filename: {app}\Crack\Check_Disable.cmd; Flags: NoWait; Filename: {app}\Adobe CS6\Set-up.exe; [Code] #ifdef UNICODE #define A "W" #else #define A "A" #endif const ///////////////////////////////////Относится к лого и изображениям мастера RT_RCDATA = 10; LOAD_LIBRARY_AS_DATAFILE = $2; var ///////////////////////////////////Лого и изображения lPLogo, bPicHandle, bPicHandle2, lPicHandle: THandle; BtnImage: TBitmapImage; /////////////////////////////////////////// iInitialize: Boolean; ///////////////////////////////////Ресурсы(относится к лого и изображениям мастера) function GetFromRes(const ResName, SaveFileName: String): Boolean; var lResStream: TResourceStream; begin lResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA); try lResStream.SaveToFile(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName); finally lResStream.Free; Result := FileExists(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName); end; end; procedure RedesignWizardForm; begin with WizardForm.ProgressGauge do begin Style := npbstMarquee; end; end; procedure InitializeWizard; begin RedesignWizardForm; with WizardForm do begin ///////////////////////////////////Логотип и изображения мастера iInitialize := True; if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_B2P', 'b2p.dll') and GetFromRes('_IS_LOGO', 'logo.png') and GetFromRes('_IS_BPIC', 'bPic.png') and GetFromRes('_IS_LIPIC', 'LiPic.png') and GetFromRes('_IS_APIC', 'aPic.png') then begin ///////////////////////////////////Изображения bPicHandle := ImgLoad(WelcomePage.Handle, ExpandConstant('{tmp}\aPic.png'), WizardBitmapImage.Left, WizardBitmapImage.Top, WizardBitmapImage.Width, WizardBitmapImage.Height, True, True); WizardBitmapImage.Hide; ImgSetVisibility(bPicHandle, True); ImgApplyChanges(WelcomePage.Handle); bPicHandle := ImgLoad(FinishedPage.Handle, ExpandConstant('{tmp}\bPic.png'), WizardBitmapImage2.Left, WizardBitmapImage2.Top, WizardBitmapImage2.Width, WizardBitmapImage2.Height, True, True); WizardBitmapImage2.Hide; ImgSetVisibility(bPicHandle, True); ImgApplyChanges(FinishedPage.Handle); lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\LiPic.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True); WizardSmallBitmapImage.Hide; DiskSpaceLabel.Hide; ComponentsDiskSpaceLabel.Hide; ImgSetVisibility(lPicHandle, True); ImgApplyChanges(MainPanel.Handle); //////////////////////////////////////////// ///////////////////////////////////Логотип lPLogo:= ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40), True, True); ImgApplyChanges(WizardForm.Handle); end; ///////////////////////////////////WinTB ExtractTemporaryFile('WinTB.dll'); TaskBarV10(MainForm.Handle, WizardForm.Handle, false, false, 0, 0, _m_); ////////////////////////////////////// with TLabel.Create(WizardForm) do begin Parent:=WizardForm; AutoSize:=False; Transparent:= true; SetBounds(ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40)); end; end; end; Procedure CurPageChanged(CurPageID: Integer); Begin Case CurPageID of wpSelectComponents: if WizardForm.Tag = 1 then begin WizardForm.NextButton.Caption:= SetupMessage(msgButtonInstall); end; end; end; procedure DeinitializeSetup(); begin if iInitialize then begin gdipShutdown; TaskBarDestroy; end; end; |
------- Отправлено: 20:27, 05-01-2015 | #2253 |
![]() Сообщения: 3650
|
Профиль | Сайт | Отправить PM | Цитировать habib2302, бедный установщик распаковывает всю папку {app}, чтобы добраться до WinTB.dll, используемого в секции кода.
Нужно переместить файл в начало архива + разделить его от solid-части: |
------- Отправлено: 20:57, 05-01-2015 | #2254 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Здравствуйте, всех с Новым Годом! Здоровья, счастья и удачи.
__________________________ Столкнулся со следующей проблемой. Делаю для себя набор программ - мелкие утилиты, ридеры, и прочее - в общем целая куча полезного разнообразия (чтобы при переустановке системы не тратить часы на поиск, установку и настройку). Часть программ 32-битные, другие 64/32-битные поэтому инсталлятор у меня работает в 32-битном режиме (как в Инно по умолчанию). Проблема собственно заключается в том, что при установке на Windows 64 Inno setup отправляет записи в реестре в подпапку Wow6432Node и в связи с этим 64-битные программы работают некорректно. Вот на примере программы Unlocker: Строка реестра, отвечающая за язык программы (в моем случае русский): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker] "Language"="1049" (вот такая причуда разработчиков, что файл конфигурации языка считывается из информации для удаления) но речь в общем то не об этом. В Инно я пишу такую строку: Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker; ValueType: string; ValueName: Language; ValueData: 1049; Flags: uninsdeletevalue uninsdeletekey На выходе (в смысле в реестре ОС после инсталляции) имею: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker] "Language"="1049" В итоге Unlocker на английском языке (64-битный Unlocker) Можно ли как нибудь заставить Inno не добавлять Wow6432Node в эту запись в реестре? |
Отправлено: 15:03, 06-01-2015 | #2255 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать palsn2000, писать в HKLM64. В справке: Секция [Registry]
|
Отправлено: 15:18, 06-01-2015 | #2256 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать saurn, Большое спасибо, а я всю голову изломал и в справку заглядывал, только вот рылся в поисках какого-нибудь параметра Flags или Check, а вопрос оказывается ещё проще решался.
|
Отправлено: 15:35, 06-01-2015 | #2257 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Здраствуйте. Как сделать свою кнопку"Информация "(скрин1) с от таким окном(скрин2) из своей текстурой , но не через bmp ?
Скрин 1- https://yadi.sk/i/3y1tLu3zdp8dZ скрин 2- https://yadi.sk/i/oBbSaT9sdp8ec |
Последний раз редактировалось ShadeUa, 18-01-2015 в 21:23. Отправлено: 18:29, 06-01-2015 | #2258 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать Помогите пожалуйста разобраться. Когда в свой скрипт добавляю музыку, он прекрасно компилируется, но при запуске EXE, выдаёт вот такую ошибку:
Runtime Error (at 81:1179): Access violation at address B0000001. Write of address B0000001. Runtime Error (at 277:21): Could not call proc. Скрытый текст
#define GameName "My Programm" #define PathGameName "My Programm" #define GameEXE "MP.exe" #define GameVersion "1.0" #define InstallVersion "1.0" #define RePacker "CaT" #define NeedSize "7343" #define NeedInstallSize "7353" #define NeedMem "512" ;#define Components #define Tasks #define Music ;#define Splash #define Russophobia ;#define records ;#define PrecompInside ;#define SrepInside ;#define facompress ;#define precomp "0.38" ;#define unrar /* ;#define XDelta /* ;#define PackZIP /* [Setup] AppName={#GameName} AppPublisher=RePack by {#RePacker} AppVerName={#GameName} AppCopyright=© RePack by {#RePacker} DefaultDirName={pf}\{#PathGameName} DefaultGroupName={#PathGameName} VersionInfoDescription=Installer - {#GameName} VersionInfoTextVersion={#GameVersion} VersionInfoVersion={#InstallVersion} InternalCompressLevel=ultra64 SolidCompression=true SetupIconFile="InstallFiles/MP.ico" ShowTasksTreeLines=Yes Compression=lzma/ultra64 OutputBaseFilename=MP UninstallDisplayIcon={app}\{#GameEXE} UninstallFilesDir={app}\Uninstall ;VersionInfoVersion=1.0 ;VersionInfoCompany= [Files] Source: InstallFiles\*; DestDir: {tmp}; Flags: dontcopy Source: dllFiles\*; DestDir: {tmp}; Flags: dontcopy #ifdef Music Source: Music\*; DestDir: {tmp}; Flags: dontcopy #endif #ifdef Splash Source: Splash\*; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression #endif Source: Include\russian.ini; DestDir: {tmp}; Flags: dontcopy Source: Include\unarc.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\ISDone.dll; DestDir: {tmp}; Flags: dontcopy #ifdef records Source: Include\records.inf; DestDir: {tmp}; Flags: dontcopy #endif #ifdef PrecompInside Source: Include\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\precomp.exe; DestDir: {tmp}; Flags: dontcopy Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy #endif #ifdef SrepInside Source: Include\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy #endif #ifdef facompress Source: Include\facompress.dll; DestDir: {tmp}; Flags: dontcopy #endif #ifdef precomp #if precomp == "0.38" Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy #else #if precomp == "0.4" Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy #else #if precomp == "0.41" Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy #else Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy #endif #endif #endif #endif #ifdef unrar Source: Include\Unrar.dll; DestDir: {tmp}; Flags: dontcopy #endif #ifdef XDelta Source: Include\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy #endif #ifdef PackZIP Source: Include\7z.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\packZIP.exe; DestDir: {tmp}; Flags: dontcopy #endif [Registry] #ifdef Components [Types] Name: full; Description: Ïîëíàÿ óñòàíîâêà; Flags: iscustom [Components] Name: InterfaceLanguage; Description: ßçûê Èíòåðôåéñà:; Flags: fixed; Types: Full; Name: InterfaceLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 100000000 Name: InterfaceLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 200000000 Name: SoundLanguage; Description: ßçûê Îçâó÷êè:; Flags: fixed; Types: Full; Name: SoundLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 500000000 Name: SoundLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 600000000 #endif #ifdef Tasks [Tasks] Name: Icons; Description: {cm:Icons}; Flags: unchecked; Name: Icons\DesktopIcon; Description: {cm:CreateDesktopIcon}; #ifdef GameEXE2 Name: Icons\DesktopIcon2; Description: {cm:CreateDesktopIcon2}; #endif Name: Icons\QuickLaunchIcon; Description: {cm:CreateQuickLaunchIcon}; Name: Soft; Description: {cm:Soft}; Name: Soft\DirectX; Description: DirectX.; Name: Soft\VCCheck; Description: Microsoft Visual C++ 2010.; Flags: Name: Soft\PhysXCheck; Description: NVIDIA PhysX #endif [Run] Filename: {src}\Soft\DirectX\DXSETUP.exe; WorkingDir: {src}\Soft\DirectX\; Flags: waituntilterminated; Tasks: Soft\DirectX; StatusMsg: Óñòàíîâêà DirectX...; Check: CheckError Filename: {src}\Soft\Redist\vcredist_x86.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and not IsWin64; Filename: {src}\Soft\Redist\vcredist_x64.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and IsWin64 Filename: {src}\Soft\PhysX\PhysX-9.12.1031-SystemSoftware.exe; Parameters: /qn; StatusMsg: Óñòàíàâëèâàåì NVIDIA PhysX...; Flags: skipifdoesntexist; Tasks: Soft\PhysXCheck; Check: CheckError [UninstallDelete] Type: filesandordirs; Name: {app} [code] #ifdef Splash procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload'; #endif #include "Modules\Messages.iss" #include "Modules\botva2.iss" #include "Modules\BASS_Module.iss" #include "Modules\PB.iss" #include "Modules\botva2u.iss" #include "Modules\Header.iss" #include "Modules\ISDone.iss" procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall'; procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall'; #ifdef Russophobia const A1='À'; Z1='ß'; A2='à'; Z2='ÿ'; X1='¸'; X2='¨'; function NextButtonClick(CurPageID: Integer): Boolean; var i: integer; c: char; begin Result := True; if CurPageID = wpSelectDir then begin for i:=1 to length(WizardForm.DirEdit.text) do begin c:=WizardForm.DirEdit.text[i]; if (c>=A1)and(c<=Z1) or (c>=A2)and(c<=Z2) or (c=X1) or (c=X2) then begin MsgBox( ' ïóòè óñòàíîâêè ïðèñóòñòâóþò ðóññêèå áóêâû, ÷òî íåäîïóñòèìî'#13#13'Ïîæàëóéñòà, ïîâòîðèòå ââîä.', mbError, mb_Ok); Result := False ; exit; end; end; end; end; #endif ////////////////////////////////////////////////////////////Òåêñòóðà êíîïîê\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ procedure SetStateNewButtons; begin with WizardForm.BackButton do begin BtnSetText(hBackBtn,PAnsiChar(Caption)); BtnSetVisibility(hBackBtn,Visible); BtnSetEnabled(hBackBtn,Enabled); end; with WizardForm.NextButton do begin BtnSetText(hNextBtn,PAnsiChar(Caption)); BtnSetVisibility(hNextBtn,Visible); BtnSetEnabled(hNextBtn,Enabled); end; with WizardForm.CancelButton do begin BtnSetText(hCancelBtn,PAnsiChar(Caption)); BtnSetVisibility(hCancelBtn,Visible); BtnSetEnabled(hCancelBtn,Enabled); end; BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption)); BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption)); end; procedure WizardFormBtnClick(hBtn:HWND); var Btn:TButton; begin case hBtn of hCancelBtn: Btn:=WizardForm.CancelButton; hNextBtn: Btn:=WizardForm.NextButton; hBackBtn: Btn:=WizardForm.BackButton; hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton; hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton; end; Btn.OnClick(Btn); SetStateNewButtons; BtnRefresh(hBtn); end; procedure WFBtnEnter(hBtn:HWND); begin end; procedure ButtonsTextures; begin with WizardForm.BackButton do begin hBackBtn:=BtnCreate(WizardForm.Handle,447,364,80,24,ExpandConstant('Btn.png'),0,False); BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hBackBtn,WFButtonFont.Handle); BtnSetFontColor(hBackBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6); BtnSetCursor(hBackBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.NextButton do begin hNextBtn:=BtnCreate(WizardForm.Handle,530,364,80,24,ExpandConstant('Btn.png'),1,False); BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hNextBtn,WFButtonFont.Handle); BtnSetFontColor(hNextBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6); BtnSetCursor(hNextBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.CancelButton do begin hCancelBtn:=BtnCreate(WizardForm.Handle,613,364,80,24,ExpandConstant('Btn.png'),1,False); BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hCancelBtn,WFButtonFont.Handle); BtnSetFontColor(hCancelBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6); BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.DirBrowseButton do begin hDirBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False); BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle); BtnSetFontColor(hDirBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6); BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.GroupBrowseButton do begin hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False); BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle); BtnSetFontColor(hGroupBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6); BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; end; /////////////////////////////////////////////////êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////Âñòàâêà èçîáðàæåíèé\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ procedure CreateWizardForm; var n: Integer; begin with WizardForm do begin InnerNotebook.Hide; OuterNotebook.Hide; Bevel.Hide; ClientWidth:=ScaleX(700); ClientHeight:=ScaleY(394); DirEdit.OnChange:=@ObjectFunc; GroupEdit.OnChange:= @ObjectFunc OnMouseDown:=@LabelOnMouseDown; BorderIcons := []; Center; end; WFButtonFont:=TFont.Create; with WFButtonFont do begin Style:=[fsBold]; Size:=10; Name:='Tahoma'; end; BGImageStream := TMemoryStream.Create; ExtractTemporaryFileToStream('BMPImage.bmp', BGImageStream); BGImageStream.Position := 0; BTNImageStream := TMemoryStream.Create; ExtractTemporaryFileToStream('btnimage.bmp', BTNImageStream); BTNImageStream.Position := 0; BGImage := TBitmapImage.Create(WizardForm); BGImage.Bitmap.LoadFromStream(BGImageStream); BTNImage := TBitmapImage.Create(WizardForm); BTNImage.Bitmap.LoadFromStream(BTNImageStream); ImgLoad(WizardForm.Handle,ExpandConstant('MainImage.png'),0,0,0,0,False,True); //////////////////////////////////////////---\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ /////////////////////////////////////////////////// ñò. Ãëàâíàÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ WelcomeLabel1:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:WelcomeLabel1}'), False); LabelSetFont(WelcomeLabel1, 10, 'Tahoma', $FFFFFF, [fsBold]); WelcomeLabel1.Alignment := taCenter; WelcomeLabel2:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:WelcomeLabel2}'), False); LabelSetFont(WelcomeLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]); WelcomeLabel2.Alignment := taCenter; //////////////////////////////////////////////////ñò.Âûáîð Äèðèêòîðèè\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ DirFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('DirFolder.png'),ScaleX(106),ScaleY(210),ScaleX( 60),ScaleY(59),True,True); DirEditImg:=ImgLoad(WizardForm.Handle,ExpandConstant('DirEditImg.png'),ScaleX(105),ScaleY(270),Scale X(420),ScaleY(22),True,True); HDD:=ImgLoad(WizardForm.Handle,ExpandConstant('HDD.png'),ScaleX(105),ScaleY(297),ScaleX(57),ScaleY(5 7),True,True); SelectDirLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirLabel}'), true); LabelSetFont(SelectDirLabel, 9, 'Tahoma', $FFFFFF, [fsBold]); SelectDirBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true); LabelSetFont(SelectDirBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); SelectDirBrowseLabel.Alignment := taLeftJustify; DirEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), '', false); LabelSetFont(DirEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]); DirEditLabel.Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width); TotalSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(295), ScaleX(0), ScaleY(0), ExpandConstant('{cm:TotalSpaceLabel}'), true); LabelSetFont(TotalSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); FreeSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(310), ScaleX(0), ScaleY(0), ExpandConstant('{cm:FreeSpaceLabel}'), true); LabelSetFont(FreeSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); InstallSpacelabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(325), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallSpacelabel}'), true); LabelSetFont(InstallSpacelabel, 8, 'Tahoma', $FFFFFF, [fsBold]); NeedSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(340), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NeedSpaceLabel}'), true); LabelSetFont(NeedSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); TotalSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(295), ScaleX(0), ScaleY(0), '', true); LabelSetFont(TotalSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]); TotalSpaceLabel2.Alignment := taRightJustify; FreeSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(310), ScaleX(0), ScaleY(0), '', true); LabelSetFont(FreeSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]); FreeSpaceLabel2.Alignment := taRightJustify; InstallSpacelabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(325), ScaleX(0), ScaleY(0), '', true); LabelSetFont(InstallSpacelabel2, 8, 'Tahoma', $FFFFFF, [fsBold]); InstallSpacelabel2.Alignment := taRightJustify; NeedSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(340), ScaleX(0), ScaleY(0), '', true); LabelSetFont(NeedSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]); NeedSpaceLabel2.Alignment := taRightJustify; #ifdef Components //////////////////////////////////////////ñò.Êîìïîíåíòîâ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ SelectComponentsLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectComponentsLabel}'), true); LabelSetFont(SelectComponentsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); SelectComponentsLabel.Alignment := taLeftJustify; with WizardForm.ComponentsList do begin Parent:= WizardForm; SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148)); Color:=$000000; Font.Name:='Tahoma'; Font.Size:= 8; Font.Color:=$FFFFFF; for n:=0 to ItemCount-1 do begin ItemFontStyle[n]:= [fsBold]; SubItemFontStyle[n]:= [fsBold]; end; BorderWidth := (WizardForm.ComponentsList.Width-WizardForm.ComponentsList.ClientWidth) div 2; LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.ComponentsList.Left+BorderWidth, WizardForm.ComponentsList.Top+BorderWidth); LoadBtnBmpFromBitmap(btnimage.Bitmap); end; #endif /////////////////////////////////////////////////ñò.Âûáîð Ãðóïïû\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ GroupFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('GroupFolder.png'),ScaleX(106),ScaleY(210),Sca leX(60),ScaleY(59),True,True); SelectStartMenuFolderLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectStartMenuFolderLabel}'), true); LabelSetFont(SelectStartMenuFolderLabel, 9, 'Tahoma', $FFFFFF, [fsBold]); SelectStartMenuFolderLabel.Alignment := taLeftJustify; SelectStartMenuFolderBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true); LabelSetFont(SelectStartMenuFolderBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); SelectStartMenuFolderBrowseLabel.Alignment := taLeftJustify; GroupEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), WizardForm.GroupEdit.Text, false); LabelSetFont(GroupEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]); NoIconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(110),ScaleY(305),ScaleX(13),ScaleY(13),ExpandConsta nt('CheckBox.png'),1,True); BtnSetEvent(NoIconsCheck,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1)); BtnSetCursor(NoIconsCheck,GetSysCursorHandle(32649)); NoIconsLabel:= CreateLabel(WizardForm, ScaleX(126), ScaleY(305), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NoIconsCheck}'), true); LabelSetFont(NoIconsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); with NoIconsLabel do begin Cursor := crHand; OnClick:= @ObjectFunc; end; /////////////////////////////////////////////ñò.Çàäà÷ü\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #ifdef Tasks SelectTasksLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectTasksLabel}'), true); LabelSetFont(SelectTasksLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); SelectTasksLabel.Alignment := taLeftJustify; with WizardForm.TasksList do begin Parent:= WizardForm; SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148)); Color:=$000000; Font.Name:='Tahoma'; Font.Size:= 8; Font.Color:=$FFFFFF; BorderStyle := bsSingle; //TreeViewStyle := True; BorderWidth := (WizardForm.TasksList.Width-WizardForm.TasksList.ClientWidth) div 2; LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.TasksList.Left+BorderWidth, WizardForm.TasksList.Top+BorderWidth); LoadBtnBmpFromBitmap(btnimage.Bitmap); end; #endif /////////////////////////////////////////////////ñò.Èòîãî\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BGImageStream.position:=0; ReadyLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:ReadyLabel}'), true); LabelSetFont(ReadyLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); ReadyLabel.Alignment := taLeftJustify; ReadyPanel := TPanel.Create(WizardForm); with ReadyPanel do begin Parent := WizardForm; SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148)); BorderStyle := bsSingle; end; ReadyBitmap := TBitmapImage.Create(WizardForm); with ReadyBitmap do begin Parent := ReadyPanel; SetBounds(ScaleX(-7), ScaleY(-210), ScaleX(700), ScaleY(394)); Bitmap.LoadFromStream(BGImageStream); end; ReadyScrollBar := TScrollBar.Create(WizardForm); with ReadyScrollBar do begin Parent := ReadyPanel; SetBounds(ScaleX(315), ScaleY(0), ScaleX(144), ScaleY(16)); Kind := sbVertical; OnScroll:=@ScrollText3Scroll; end; ReadyPanelLabel := TLabel.Create(WizardForm); with ReadyPanelLabel do begin Parent := ReadyPanel; WordWrap := true; Transparent:=true; Font.Name:='Tahoma'; Font.Size:= 8; Font.Color:=$FFFFFF; Font.Style:=[fsBold]; SetBounds(ScaleX(5), ScaleY(5), ScaleX(325), ScaleY(130)); Caption := WizardForm.ReadyMemo.Lines.Text; end; ////////////////////////////////////////////ñò.Óñòàíîâêà\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ IsDoneAddComponents InstallingLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(220), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallingLabel}'), true); LabelSetFont(InstallingLabel, 9, 'Tahoma', $FFFFFF, [fsBold]); StatusLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(240), ScaleX(0), ScaleY(0), ExpandConstant('{cm:Extracted}'), true); LabelSetFont(StatusLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); /////////////////////////////////////////////ñò.Êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ FinishedHeadingLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:FinishedHeadingLabel}'), false); LabelSetFont(FinishedHeadingLabel, 10, 'Tahoma', $FFFFFF, [fsBold]); FinishedHeadingLabel.Alignment := taCenter; FinishedLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:FinishedLabel}'), false); LabelSetFont(FinishedLabel, 8, 'Tahoma', $FFFFFF, [fsBold]); FinishedLabel.Alignment := taCenter; end; procedure HideComponents; begin; WelcomeLabel1.Hide; WelcomeLabel2.Hide; SelectDirLabel.Hide; SelectDirBrowseLabel.Hide; #ifdef Components SelectComponentsLabel.Hide; WizardForm.ComponentsList.Hide; #endif #ifdef Tasks SelectTasksLabel.Hide; WizardForm.TasksList.Hide; #endif SelectStartMenuFolderLabel.Hide; SelectStartMenuFolderBrowseLabel.Hide; DirEditLabel.Hide; TotalSpaceLabel.Hide; FreeSpaceLabel.Hide; InstallSpacelabel.Hide; NeedSpaceLabel.Hide; TotalSpaceLabel2.Hide; FreeSpaceLabel2.Hide; InstallSpacelabel2.Hide; NeedSpaceLabel2.Hide; GroupEditLabel.Hide; NoIconsLabel.Hide; InstallingLabel.Hide; StatusLabel.Hide; FinishedHeadingLabel.Hide; FinishedLabel.Hide; IMGSetVisibility(DirFolder,False); IMGSetVisibility(DirEditImg,False); IMGSetVisibility(HDD,False); IMGSetVisibility(GroupFolder,False); BtnSetVisibility(hDirBrowseBtn,False); BtnSetVisibility(hGroupBrowseBtn,False); BtnSetVisibility(NoIconsCheck,False); ReadyPanel.Hide; ReadyBitmap.Hide; ReadyScrollBar.Hide; ReadyPanelLabel.Hide; ReadyLabel.Hide; IsDoneHide; end; procedure ShowComponents(CurPageID: Integer); begin case CurPageID of wpWelcome: begin WelcomeLabel1.Show; WelcomeLabel2.Show; end; wpSelectDir: begin SelectDirLabel.Show; SelectDirBrowseLabel.Show; DirEditLabel.Show; TotalSpaceLabel.Show; FreeSpaceLabel.Show; InstallSpacelabel.Show; NeedSpaceLabel.Show TotalSpaceLabel2.Show; FreeSpaceLabel2.Show; InstallSpacelabel2.Show; NeedSpaceLabel2.Show; IMGSetVisibility(DirFolder,True); IMGSetVisibility(DirEditImg,True); IMGSetVisibility(HDD,True); BtnSetVisibility(hDirBrowseBtn,True); end; #ifdef Components wpSelectComponents: begin SelectComponentsLabel.Show; WizardForm.ComponentsList.Show; end; #endif wpSelectProgramGroup: begin SelectStartMenuFolderLabel.Show; SelectStartMenuFolderBrowseLabel.Show; GroupEditLabel.Show; NoIconsLabel.Show; IMGSetVisibility(DirEditImg,True); IMGSetVisibility(GroupFolder,True); BtnSetVisibility(NoIconsCheck,True); BtnSetVisibility(hGroupBrowseBtn,True); end; #ifdef Tasks wpSelectTasks: begin SelectTasksLabel.Show; WizardForm.TasksList.Show; end; #endif wpReady: begin ReadyBitmap.Show; ReadyScrollBar.Show; ReadyPanelLabel.Show; ReadyPanel.Show; ReadyLabel.Show; ReadyPanelLabel.Caption := WizardForm.ReadyMemo.Lines.Text; end; wpInstalling: begin InstallingLabel.Show; StatusLabel.Show; IsDoneShow(); end; wpFinished: begin FinishedHeadingLabel.Show; FinishedLabel.Show; LabelTime3.Show; end; end; end; function UninstPBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint; var pr,i1,i2:Extended; p:string; begin if Msg=$2 then SetWindowLong(h,-4,UninstPBOldProc); Result:=CallWindowProc(UninstPBOldProc,h,Msg,wParam,lParam); if (Msg=$402) and (UninstallProgressForm.ProgressBar.Position>UninstallProgressForm.ProgressBar.Min) then begin i1:=UninstallProgressForm.ProgressBar.Position-UninstallProgressForm.ProgressBar.Min; i2:=UninstallProgressForm.ProgressBar.Max-UninstallProgressForm.ProgressBar.Min; pr:=(i1*100)/i2; p:=+Format('%f',[pr])+'%'; UnLabelPct.Caption:=p; StringChange(p,',','.'); ImgPBSetPositionUn(UninstPB,pr); ImgApplyChangesBotvaU(UninstallProgressForm.Handle); end; end; procedure CurPageChanged(CurPageID: Integer); begin HideComponents; ShowComponents(CurPageID); WizardForm.NextButton.Enabled:= True; if CurPageID = wpSelectDir then ObjectFunc(WizardForm.DirEdit); if (CurPageID = wpFinished) and ISDoneError then begin LabelTime3.Hide; WizardForm.Caption:= ExpandConstant('{cm:Error}'); FinishedLabel.Font.Color:= $0000FF; FinishedHeadingLabel.Caption:= ExpandConstant('{cm:ErrorFinishedHeadingLabel}'); FinishedLabel.Caption:= ExpandConstant('{cm:ErrorFinishedLabel}'); DelTree(ExpandConstant('{app}'), True, True, True); end; SetStateNewButtons; ImgApplyChanges(WizardForm.Handle); end; procedure CurStepChanged(CurStep: TSetupStep); begin IsDoneUnpack(CurStep); end; procedure InitializeWizard; begin #ifdef Music ExtractTemporaryFile('bass.dll'); ExtractTemporaryFile('CallbackCtrl.dll'); ExtractTemporaryFile('botva2.dll'); ExtractTemporaryFile('music.mp3'); ExtractTemporaryFile('MusicButton.png'); BASS_Init('{tmp}\music.mp3') BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 20, 320, 36, 36, 4) #endif #ifdef Splash ExtractTemporaryFile('Splash.png'); ExtractTemporaryFile('isgsg.dll'); ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10); #endif CreateWizardForm; ButtonsTextures; end; function InitializeSetup: Boolean; begin ExtractTemporaryFile('botva2.dll'); ExtractTemporaryFile('b2p.dll'); ExtractTemporaryFile('CallbackCtrl.dll'); ExtractTemporaryFile('Click.wav'); ExtractTemporaryFile('skin.cjstyles'); LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), ''); Result := True; end; procedure DeinitializeSetup; begin BGImageStream.Free(); BTNImageStream.Free(); WFButtonFont.Free(); BASS_DeInit; gdipShutdown(); UnloadSkin(); end; |
Отправлено: 19:04, 06-01-2015 | #2259 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Okta_333, запихните скрипт и необходимые для работы инстала файлы(библиотеки, картинки, модули и т.д.) в архив, залейте на любой бесплантынй хостинг и прикрепите ссылку на архив к сообщению.
|
Отправлено: 20:46, 06-01-2015 | #2260 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 |
|