|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2] |
|
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
|
Ветеран Сообщения: 1133 |
Лимит страниц.
Тема закрыта. Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3] Внимание! Данная тема предназначена только для обсуждения написания скриптов ! Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Ссылка на архив предыдущей темы (также можно скачать из вложения) |
|
------- Отправлено: 22:06, 23-08-2009 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата shao:
Тогда в Function InitializeUninstall делаем проверку If FileExists then MsgBox..., в секции Files для этих файлов флаг uninsneveruninstall. Вот что наковырял var UnChoice: array[0..4] of TRadioButton UnInstallPage: TWizardPage; UnInstallPage:= CreateCustomPage(wpUserInfo,ExpandConstant('{cm:UninstallLabel}'),ExpandConstant('{cm:UninstallDescription}')); for n:= 0 to 4 do begin UnChoice[n]:= TRadioButton.Create(UnInstallPage) UnChoice[n].Parent:= UnInstallPage.Surface; UnChoice[n].Caption:= ExpandConstant(' {cm:UnChoice'+ IntToStr(n) +'} '); UnChoice[n].SetBounds(WizardForm.PreparingLabel.Left + 16, WizardForm.PreparingLabel.Top + 25 + 25*(n+1), WizardForm.PreparingLabel.Width, UnChoice[n].Height); end; if CurPageID = UnInstallPage.ID then begin |
|
------- Последний раз редактировалось R.i.m.s.k.y., 12-10-2010 в 11:31. Отправлено: 10:01, 12-10-2010 | #2451 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Здравствуйте господа. У меня проблема. После создания репака, и установки с него игры, я ее не могу удалить не с "установка и удаление программ", не с меню "Пуск".
Только физическое удаление папки игры. Скрипт создавался Inno Setup GameScript Generator 1.1.0.62 для Inno Setup Compiler 5-2-2. Если создаю скрипт самим Inno Setup Compiler и правлю его istool, то все работает. Пишет при попытке удаления что : Файл протокола для инстализации не распознан данной верией программы - деинстализатора. Прошу помочь, и подсказать где проблема. Вот скрипт: ; Скрипт создан с помощью ; IS GameScript Generator by South ; специально для www.csmania.ru [Setup] SourceDir=. OutputDir=D:\ AppName=Две сорваные башни. AppVerName=Две сорваные башни. AppVersion=Две сорваные башни. AppPublisher=Necromant SOFT AppCopyright=Necromant SOFT AppPublisherURL=www.norcom.ru AppSupportURL=www.norcom.ru AppUpdatesURL=www.norcom.ru DefaultDirName={pf}\Две сорваные башни. DefaultGroupName=Две сорваные башни. AllowNoIcons=yes OutputBaseFilename=setup WizardImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp002.bmp WizardSmallImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp013.bmp WindowVisible=no WindowShowCaption=no WindowResizable=no Compression=lzma/ultra SolidCompression=yes DiskSpanning=yes DiskSliceSize=314572800 SlicesPerDisk=1 [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" [Files] Source: "C:\Fraps\Screenshots\towers 2010-10-11 04-00-08-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-18-45-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-24-14-22.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-25-34-98.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "C:\Fraps\Screenshots\towers 2010-10-11 03-59-56-43.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956405.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956406.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956407.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956409.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "G:\образы игр\2Bashni\2bashni\091095d.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak Source: C:\Users\necromantster\Desktop\ппкрпрку.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression Source: "D:\Games\Две сорванные башни\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension [Icons] Name: "{group}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun; Name: "{userdesktop}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: autorun; Name: "{group}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher; Name: "{userdesktop}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: launcher; Name: "{group}\{cm:UninstallProgram,Две сорваные башни.}"; Filename: "{uninstallexe}" [Run] Description: "{cm:LaunchProgram, 2bachni}"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun; Flags: nowait postinstall skipifsilent unchecked Description: "{cm:LaunchProgram, launcher}"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher; Flags: nowait postinstall skipifsilent unchecked Filename: {win}\regedit.exe; Parameters: /s {tmp}\ппкрпрку.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser [UninstallDelete] Type: filesandordirs; Name: "{app}" [_code] const Indent=25; dURL=2; var URLLabel,URLLabelShadow:TLabel; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload'; function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boolean; external 'ssInitialize@files:isgsg.dll stdcall delayload'; procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload'; procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload'; procedure ssAddImage(FileName:PChar); external 'ssAddImage@files:isgsg.dll stdcall delayload'; procedure ssStartShow; external 'ssStartShow@files:isgsg.dll stdcall delayload'; procedure ssStopShow; external 'ssStopShow@files:isgsg.dll stdcall delayload'; 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'; function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload'; procedure URLLabelClick(Sender: TObject); var ErrorCode:integer; begin ShellExec('open','www.norcom.ru','','',SW_SHOWNORMAL,ewNoWait,ErrorCode); end; procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); begin URLLabel.Top:=URLLabel.Top+dURL; URLLabel.Left:=URLLabel.Left+dURL; URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline]; URLLabel.Font.Color:=clBlue; URLLabelShadow.Visible:=False; end; procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); begin URLLabel.Top:=URLLabel.Top-dURL; URLLabel.Left:=URLLabel.Left-dURL; URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline]; URLLabel.Font.Color:=clMaroon; URLLabelShadow.Visible:=True; end; procedure RunListClickCheck(Sender: TObject); var i:integer; begin if WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex] then begin for i:=0 to WizardForm.RunList.Items.Count-1 do WizardForm.RunList.Checked[i]:=False; WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex]:=True; end; end; function InitializeSetup:boolean; begin ExtractTemporaryFile('ппкрпрку.reg'); Result:=True; end; procedure InitializeWizard; begin WizardForm.RunList.OnClickCheck:=@RunListClickCheck; URLLabelShadow:=TLabel.Create(WizardForm); with URLLabelShadow do begin Top:=ScaleY(331); Left:=ScaleX(25); Caption:='www.norcom.ru'; AutoSize:=True; Parent:=WizardForm; Transparent:=True; Font.Color:=$969696; Font.Size:=9; Font.Style:=Font.Style+[fsBold]; end; URLLabel:=TLabel.Create(WizardForm); with URLLabel do begin Top:=ScaleY(331)-dURL; Left:=ScaleX(25)-dURL; Caption:='www.norcom.ru'; AutoSize:=True; Parent:=WizardForm; Cursor:=crHand; Transparent:=True; Font.Color:=clMaroon; Font.Size:=9; Font.Style:=Font.Style+[fsBold]; BringToFront; OnClick:=@URLLabelClick; OnMouseDown:=@URLLabelMouseDown; OnMouseUp:=@URLLabelMouseUp; end; ExtractTemporaryFile('091095d.jpg'); ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\091095d.jpg',1000,7000,3000,0,255,False,$FFFFFF,10); ssInitialize(GetWindowLong(MainForm.Handle,-8),10,False,1,$FF000000); ExtractTemporaryFile('towers 2010-10-11 04-00-08-61.bmp'); ssSetBkgImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 04-00-08-61.bmp'); end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep=ssInstall then begin ExtractTemporaryFile('dve_sorvannye_bashni-1243956405.jpg'); ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956405.jpg'); ExtractTemporaryFile('dve_sorvannye_bashni-1243956406.jpg'); ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956406.jpg'); ExtractTemporaryFile('dve_sorvannye_bashni-1243956407.jpg'); ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956407.jpg'); ExtractTemporaryFile('dve_sorvannye_bashni-1243956409.jpg'); ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956409.jpg'); ExtractTemporaryFile('kmplayer 2010-10-11 21-24-14-22.bmp'); ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-24-14-22.bmp'); ExtractTemporaryFile('kmplayer 2010-10-11 21-18-45-61.bmp'); ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-18-45-61.bmp'); ExtractTemporaryFile('towers 2010-10-11 03-59-56-43.bmp'); ssAddImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 03-59-56-43.bmp'); ExtractTemporaryFile('kmplayer 2010-10-11 21-25-34-98.bmp'); ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-25-34-98.bmp'); ssStartShow; end; if CurStep=ssPostInstall then ssStopShow; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID=wpInstalling then begin WizardForm.MainPanel.Visible:=False; WizardForm.Bevel1.Visible:=False; WizardForm.Width:=ScaleX(395); WizardForm.Height:=ScaleY(142); WizardForm.Left:=ScaleX(GetSystemMetrics(0)-WizardForm.Width-Indent); WizardForm.Top:=ScaleY(GetSystemMetrics(1)-WizardForm.Height-Indent); WizardForm.InnerNotebook.Left:=ScaleX(10); WizardForm.InnerNotebook.Top:=ScaleY(10); WizardForm.InnerNotebook.Width:=ScaleX(370); WizardForm.StatusLabel.Left:=ScaleX(0); WizardForm.StatusLabel.Top:=ScaleY(0); WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.FileNameLabel.Left:=ScaleX(0); WizardForm.FileNameLabel.Top:=ScaleY(20); WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:=ScaleY(40); WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:=ScaleX(154); WizardForm.CancelButton.Top:=ScaleY(80); end; if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then begin WizardForm.RunList.Checked[0]:=True; if WizardForm.Width<>502 then begin WizardForm.Visible:=False; WizardForm.Width:=ScaleX(502); WizardForm.Height:=ScaleY(392); WizardForm.Left:=(GetSystemMetrics(0)-WizardForm.Width) div 2; WizardForm.Top:=(GetSystemMetrics(1)-WizardForm.Height) div 2; WizardForm.MainPanel.Visible:=True; WizardForm.Bevel1.Visible:=True; WizardForm.InnerNotebook.Left:=ScaleX(40); WizardForm.InnerNotebook.Top:=ScaleY(72); WizardForm.InnerNotebook.Width:=ScaleX(417); WizardForm.Visible:=True; end; end; end; procedure DeinitializeSetup; begin ssDeInitialize; end; |
Последний раз редактировалось necromanster, 12-10-2010 в 13:12. Отправлено: 11:48, 12-10-2010 | #2452 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата necromanster:
![]() Цитата necromanster:
Только при установке последнее окно где-то внизу-справа оказалось. в папке Source: "D:\Games\Две сорванные башни\*" случайно нету файлов unins*? файлы unins*.dat и unins.exe инно создает сам в процессе установки. И код надо заключать в теги [_code] [/_code], а такой здоровый кусок - под кат [_ht=Заголовок скрытого текста]скрытый текст, который будет отображаться при нажатии на заголовок[/_ht] _ убрать из тегов. |
||
------- Отправлено: 12:08, 12-10-2010 | #2453 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата:
И еслти не трудно, еще один вопрос. Как сделать так, что бы при установке игры, устанавливалось дополнительное ПО. (DirectX и тому подобное.) Искал ответ на форуме, но внятного описания нет. |
|
Отправлено: 13:05, 12-10-2010 | #2454 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата necromanster:
Цитата necromanster:
http://forum.oszone.net/post-1455980.html#post1455980 http://forum.oszone.net/post-1456143.html#post1456143 Легко находится по слову DirectX А вообще надо смотреть что за ПО, некоторое надо еще проверять на версии чтобы старым не заменить новое. |
||
------- Отправлено: 13:18, 12-10-2010 | #2455 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Добрый день
Нужна помощь.сделал нсталятор в котором есть две группы ,как сделать чтобы на странице выбора установки не была сразу отмечена галочкой сама группа и её компоненты,при выборе группы не выбирались оба компонента,при выборе одного компонента группы снимался выбор со второго [Types] Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom [Components] Name: "Gruppa1"; Description: "Название"; Types: viborochnaya Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya Name: "Gruppa1\Component2"; Description: "Название"; Types: viborochnaya Name: "Gruppa2"; Description: "Название"; Types: viborochnaya Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya [Files] Source: E:\Новая папка\Папка1\*; Components: Gruppa1\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs Source: E:\Новая папка\папка2\*; Components: Gruppa1\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs Source: E:\Новая папка\Папка3\*; Components: Gruppa2\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs Source: E:\Новая папка\папка4\*; Components: Gruppa2\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs |
Отправлено: 14:44, 12-10-2010 | #2456 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата tor62:
[Types] Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom Name: "full"; Description: "Полная установка"; Flags: [Components] Name: "Gruppa1"; Description: "Название"; Types: full; Flags: checkablealone Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya; Flags: dontinheritcheck Name: "Gruppa1\Component2"; Description: "Название"; Types: full; Flags: dontinheritcheck Name: "Gruppa2"; Description: "Название"; Types: viborochnaya Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya; Flags: exclusive Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya; Flags: exclusive Цитата tor62:
shao, забыл дописать, по первому варианту (вывод сообщений) если есть вопросы - в личку, напишу код, по второму (inno setup upgrade) я не подскажу, знаний не хватает. В данномвопросе вторым способом могут помочь камрады Serega и Habetdin. |
||
------- Последний раз редактировалось R.i.m.s.k.y., 12-10-2010 в 16:21. Отправлено: 15:01, 12-10-2010 | #2457 |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Но , желательно все-таки с возможностью выбора из , например, списка/перечня удаляемых файлов. Цитата R.i.m.s.k.y.:
![]() Схожу-ка в личку Цитата R.i.m.s.k.y.:
![]() ![]() |
|||
Отправлено: 16:27, 12-10-2010 | #2458 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата shao:
Procedure www (filetodel : string); var st : string; begin st := ExpandConstant('{sys}\' + filetodel; if MsgBox('Удалить файл ' + filetodel +'?', mbError, MB_YESNO) = idYes then begin if DeleteFile(st) = False then MsgBox('Не удалось удалить файл '+ filetodel, mbInformation, MB_OK); end; end; Function InitializeUninstall: Boolean; begin if (FileExists(ExpandConstant('{sys}\1.dll'))) then www('1.dll'); ... if (FileExists(ExpandConstant('{sys}\5.dll'))) then www('5.dll'); end; А к старшим вопрос - как при деинсталляции создать окно выбора чего удалять? Коллекцию скриптов смотрел, курил - не понял. |
|
------- Отправлено: 16:42, 12-10-2010 | #2459 |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:03, 12-10-2010 | #2460 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Inno Setup .:[все вопросы]:. | Mchik | Автоматическая установка приложений | 1329 | 23-08-2009 20:13 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|