Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Mancoffee
29-04-2014, 01:12
Как обойти установку дополнительных компонентов (Inno Script Studio и другие) в "тихой" установке, если нет интернета?
ПС. Знаю, что есть параметр /COMPONENTS , но нигде не нашёл, какие у него подпараметры, то есть как называются.
Mancoffee,
Параметры командной строки инсталлятора (http://jrsoftware.org/ishelp/topic_setupcmdline.htm)
Mancoffee
29-04-2014, 09:06
saurn, да вроде как написал, что про параметр /COMPONENTS знаю и про другие тоже. Есть так к примеру help, то есть /COMPONENTS="help"
А как поставить туда Inno Script Studio? Где это описано?
да вроде как написал, что про параметр /COMPONENTS знаю »
Если знаете, к чему вопросы?
Где это описано? »
Да там же и описано. Других предустановленных параметров командной строки инсталляторы инно не имеют. Исключения составляют инсталляторы, где автор оного задал кастомные команды в коде. Рискну предположить, что вы пытаетесь обойти установку студии при установке QuickStart Pack в тихом режиме. В нем - в QuickStart Pack - дополнительные опции (установка препроцессора, студии, инно иде, модуля шифрования) реализованы, как кастомные команды, не относящиеся к секции Components или Tasks, а следовательно стандартные параметры командной строки им до лампочки. Автор инсталятора QuickStart Pack должен был сам указать кастомные параметры для управления установкой этих компонентов, если счел нужным. Сделал ли он это - я не знаю. Как вариант - гляньте в сторону файла ответов.
Mancoffee
29-04-2014, 14:02
Да там же и описано. »
Конкретизирую вопрос - как тогда обойти установки (если отсутствует интернет; или просто пропуск) Inno Script Studio, PreProcessor и другие?
El Sanchez
30-04-2014, 17:18
как тогда обойти установки (если отсутствует интернет; или просто пропуск) Inno Script Studio, PreProcessor и другие? »
Mancoffee, да никак, разве что перепаковать. Параметров комстроки, отвечающих за закачку сторонних компонентов всего 2 (/allowinnoide и /ispp (не в версии QuickStart Pack)). Первый особо не интересен, т.к. предлагает к закачке среды InnoIDE на странице закачки IDE, а вот второй позволял бы отключить закачку препроцессора (/ispp=0), если бы не детская ошибка в коде официального инсталлятора, приводящая к тому, что галка будет всегда отмечена. Про ISStudio и ISCrypt там вообще ничего.
Dodakaedr
01-05-2014, 17:14
Есть конвертор nsis скриптов в inno формат? Интересует как это сделать !macro RegisterExtension extenstion
;create a class for extesion
;read/write section state
!insertmacro ProcessSection ${extenstion}
;if $r0 is 0 then exit section
StrCmp $R0 0 EndMacro 0
;--------------section code----------------
StrCpy $ClassName "AIMP.${extenstion}"
StrCmp ${extenstion} "AUDIOCD" 0 noaudio
WriteRegStr HKCR "${extenstion}" "" "$ClassName"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" "Progid" "$ClassName"
noaudio:
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$ClassName"
WriteRegStr HKCR "$ClassName\CLSID" "" "{0041494D-5032-4472-6F70-546172676574}"
WriteRegStr HKCR "$ClassName\shell\open" "" "Открыть в AIMP2"
WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
WriteRegStr HKCR "$ClassName\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}" "" "AIMP"
WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}\LocalServer32" "" "$Exe_Path"
WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}\ProgID" "" "AIMP.TDropTarget"
WriteRegStr HKCR "AIMP.TDropTarget" "" "AIMP"
WriteRegStr HKCR "AIMP.TDropTarget\Clsid" "" "{0041494D-5032-4472-6F70-546172676574}"
;define icon for class
${Switch} ${extenstion}
${Case} "AAC"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Advanced Audio Codec"
${Break}
${Case} "AC3"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Dolby Digital AC-3"
${Break}
${Case} "ACS2"
StrCpy $IconIndex 8
WriteRegStr HKCR "$ClassName" "" "AIMP2: Skin Package"
${Break}
${Case} "AIF"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Audio"
${Break}
${Case} "AIFF"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Audio"
${Break}
${Case} "APE"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Monkey's Audio"
${Break}
${Case} "AUDIOCD"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Audio CD Autorun"
${Break}
${Case} "CDA"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: CD Digital Audio"
${Break}
${Case} "CUE"
StrCpy $IconIndex 9
WriteRegStr HKCR "$ClassName" "" "AIMP2: CUE Sheet"
${Break}
${Case} "FLA"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Free Lossless Audio"
StrCpy $IconIndex 6
${Break}
${Case} "FLAC"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Free Lossless Audio"
StrCpy $IconIndex 6
${Break}
${Case} "IT"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Impulse Tracker Module"
StrCpy $IconIndex 5
${Break}
${Case} "KAR"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
StrCpy $IconIndex 4
${Break}
${Case} "M3U"
WriteRegStr HKCR "$ClassName" "" "AIMP2: M3U Playlist"
StrCpy $IconIndex 9
${Break}
${Case} "M3U8"
WriteRegStr HKCR "$ClassName" "" "AIMP2: M3U (Unicoded) Playlist"
StrCpy $IconIndex 9
${Break}
${Case} "M4A"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Lossless Audio Codec"
StrCpy $IconIndex 1
${Break}
${Case} "MAC"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Monkey's Audio"
StrCpy $IconIndex 4
${Break}
${Case} "MID"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
StrCpy $IconIndex 4
${Break}
${Case} "MIDI"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
StrCpy $IconIndex 4
${Break}
${Case} "MO3"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Compressed Tracker Module"
StrCpy $IconIndex 5
${Break}
${Case} "MOD"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Compressed Tracker Module"
StrCpy $IconIndex 5
${Break}
${Case} "MP+"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
StrCpy $IconIndex 7
${Break}
${Case} "MP1"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 1"
StrCpy $IconIndex 1
${Break}
${Case} "MP2"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 2"
StrCpy $IconIndex 1
${Break}
${Case} "MP3"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 3"
StrCpy $IconIndex 1
${Break}
${Case} "MPC"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
StrCpy $IconIndex 7
${Break}
${Case} "MPP"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
StrCpy $IconIndex 7
${Break}
${Case} "MTM"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Tracker Module"
StrCpy $IconIndex 5
${Break}
${Case} "OFR"
WriteRegStr HKCR "$ClassName" "" "AIMP2: OptimFROG"
StrCpy $IconIndex 4
${Break}
${Case} "OFS"
WriteRegStr HKCR "$ClassName" "" "AIMP2: OptimFROG"
StrCpy $IconIndex 4
${Break}
${Case} "OGA"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Ogg Vorbis Audio"
StrCpy $IconIndex 2
${Break}
${Case} "OGG"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Ogg Vorbis Audio"
StrCpy $IconIndex 2
${Break}
${Case} "PLC"
WriteRegStr HKCR "$ClassName" "" "AIMP2: PLC Playlist"
StrCpy $IconIndex 9
${Break}
${Case} "PLS"
WriteRegStr HKCR "$ClassName" "" "AIMP2: PLS Playlist"
StrCpy $IconIndex 9
${Break}
${Case} "RMI"
WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
StrCpy $IconIndex 4
${Break}
${Case} "S3M"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Scream Tracker 3 Module"
StrCpy $IconIndex 5
${Break}
${Case} "SPX"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Speex"
StrCpy $IconIndex 5
${Break}
${Case} "TTA"
WriteRegStr HKCR "$ClassName" "" "AIMP2: The True Audio"
StrCpy $IconIndex 4
${Break}
${Case} "UMX"
WriteRegStr HKCR "$ClassName" "" "AIMP2: Unreal Music File"
StrCpy $IconIndex 5
${Break}
${Case} "WAV"
StrCpy $IconIndex 0
WriteRegStr HKCR "$ClassName" "" "AIMP2: Windows WAVE"
${Break}
${Case} "WMA"
StrCpy $IconIndex 3
WriteRegStr HKCR "$ClassName" "" "AIMP2: Windows Media Audio"
${Break}
${Case} "WV"
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: WavPack"
${Break}
${Case} "XM"
StrCpy $IconIndex 5
WriteRegStr HKCR "$ClassName" "" "AIMP2: Fast Tracker Module"
${Break}
${Default}
StrCpy $IconIndex 4
WriteRegStr HKCR "$ClassName" "" "AIMP2: Media File"
${Break}
${EndSwitch}
WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"
EndMacro:
!macroend
!macro UnRegisterExtension extenstion
StrCpy $ClassName "AIMP.${extenstion}"
StrCmp ${extenstion} "AUDIOCD" 0 +7
ReadRegStr $0 HKCR "${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCR "$ClassName"
ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"
ReadRegStr $0 HKCR ".${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCR "$ClassName"
ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
!macroend
SectionGroup /e "Ассоциации файлов"
Section "-SetupIconsVariables"
StrCmp $gMode 1 NotgMode
;default icon file
StrCpy $IconFileName "aimp2.dll"
IfSilent 0 EndSection
IfFileExists $IniFile 0 EndSection
ReadINIStr $R0 $IniFile Advanced IconFileName
IfFileExists "$INSTDIR\Icons\$R0" 0 EndSection
StrCpy $IconFileName $R0
EndSection:
StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
StrCpy $Exe_Path "$INSTDIR\AIMP2.exe"
NotgMode:
SectionEnd
Section "Контекстое меню проводника" ContextMenu
SectionIn 1 2
;read/write section state
!insertmacro ProcessSection "ContextMenu"
;if $r0 is 0 then exit section
StrCmp $R0 0 EndSection 0
;--------------section code----------------
RegDLL "$INSTDIR\System\aimp_shell.dll"
EndSection:
SectionEnd
Section "AAC" AAC
SectionIn 1 2
!insertmacro RegisterExtension "AAC"
SectionEnd
Section "AC3" AC3
SectionIn 1 2
!insertmacro RegisterExtension "AC3"
SectionEnd
Section "ACS2" ACS2
SectionIn 1 2
!insertmacro RegisterExtension "ACS2"
SectionEnd
Section "AIF" AIF
SectionIn 1 2
!insertmacro RegisterExtension "AIF"
SectionEnd
Section "AIFF" AIFF
SectionIn 1 2
!insertmacro RegisterExtension "AIFF"
SectionEnd
Section "APE" APE
SectionIn 1 2
!insertmacro RegisterExtension "APE"
SectionEnd
Section "AUDIOCD" AUDIOCD
SectionIn 1 2
!insertmacro RegisterExtension "AUDIOCD"
SectionEnd
Section "CDA" CDA
SectionIn 1 2
!insertmacro RegisterExtension "CDA"
SectionEnd
Section "CUE" CUE
SectionIn 1 2
!insertmacro RegisterExtension "CUE"
SectionEnd
Section "FLA" FLA
SectionIn 1 2
!insertmacro RegisterExtension "FLA"
SectionEnd
Section "FLAC" FLAC
SectionIn 1 2
!insertmacro RegisterExtension "FLAC"
SectionEnd
Section "IT" IT
SectionIn 1 2
!insertmacro RegisterExtension "IT"
SectionEnd
Section "KAR" KAR
SectionIn 1 2
!insertmacro RegisterExtension "KAR"
SectionEnd
Section "M3U" M3U
SectionIn 1 2
!insertmacro RegisterExtension "M3U"
SectionEnd
Section "M3U8" M3U8
SectionIn 1 2
!insertmacro RegisterExtension "M3U8"
SectionEnd
Section "M4A" M4A
SectionIn 1 2
!insertmacro RegisterExtension "M4A"
SectionEnd
Section "MAC" MAC
SectionIn 1 2
!insertmacro RegisterExtension "MAC"
SectionEnd
Section "MID" MID
SectionIn 1 2
!insertmacro RegisterExtension "MID"
SectionEnd
Section "MIDI" MIDI
SectionIn 1 2
!insertmacro RegisterExtension "MIDI"
SectionEnd
Section "MO3" MO3
SectionIn 1 2
!insertmacro RegisterExtension "MO3"
SectionEnd
Section "MOD" MOD
SectionIn 1 2
!insertmacro RegisterExtension "MOD"
SectionEnd
Section "MP+" MP+
SectionIn 1 2
!insertmacro RegisterExtension "MP+"
SectionEnd
Section "MP1" MP1
SectionIn 1 2
!insertmacro RegisterExtension "MP1"
SectionEnd
Section "MP2" MP2
SectionIn 1 2
!insertmacro RegisterExtension "MP2"
SectionEnd
Section "MP3" MP3
SectionIn 1 2
!insertmacro RegisterExtension "MP3"
SectionEnd
Section "MPC" MPC
SectionIn 1 2
!insertmacro RegisterExtension "MPC"
SectionEnd
Section "MPP" MPP
SectionIn 1 2
!insertmacro RegisterExtension "MPP"
SectionEnd
Section "MTM" MTM
SectionIn 1 2
!insertmacro RegisterExtension "MTM"
SectionEnd
Section "OFR" OFR
SectionIn 1 2
!insertmacro RegisterExtension "OFR"
SectionEnd
Section "OFS" OFS
SectionIn 1 2
!insertmacro RegisterExtension "OFS"
SectionEnd
Section "OGA" OGA
SectionIn 1 2
!insertmacro RegisterExtension "OGA"
SectionEnd
Section "OGG" OGG
SectionIn 1 2
!insertmacro RegisterExtension "OGG"
SectionEnd
Section "PLC" PLC
SectionIn 1 2
!insertmacro RegisterExtension "PLC"
SectionEnd
Section "PLS" PLS
SectionIn 1 2
!insertmacro RegisterExtension "PLS"
SectionEnd
Section "RMI" RMI
SectionIn 1 2
!insertmacro RegisterExtension "RMI"
SectionEnd
Section "S3M" S3M
SectionIn 1 2
!insertmacro RegisterExtension "S3M"
SectionEnd
Section "SPX" SPX
SectionIn 1 2
!insertmacro RegisterExtension "SPX"
SectionEnd
Section "TTA" TTA
SectionIn 1 2
!insertmacro RegisterExtension "TTA"
SectionEnd
Section "UMX" UMX
SectionIn 1 2
!insertmacro RegisterExtension "UMX"
SectionEnd
Section "WAV" WAV
SectionIn 1 2
!insertmacro RegisterExtension "WAV"
SectionEnd
Section "WMA" WMA
SectionIn 1 2
!insertmacro RegisterExtension "WMA"
SectionEnd
Section "WV" WV
SectionIn 1 2
!insertmacro RegisterExtension "WV"
SectionEnd
Section "XM" XM
SectionIn 1 2
!insertmacro RegisterExtension "XM"
SectionEnd
Section "-RefreshIcons"
SectionIn 1 2 3
StrCmp $gMode 1 +2 0
${RefreshShellIcons}
SectionEnd
SectionGroupEnd
sergey3695
01-05-2014, 19:44
Dodakaedr, интересно,а по какому принципу конвертер должен работать? я точно не встречал,даже не интересовался.
Dodakaedr
01-05-2014, 20:51
sergey3695, ну приблизительно как конвертор с inno в nsis.
Dodakaedr
02-05-2014, 16:34
Из справки:
В этом скрипте при инсталляции в бэкап сохраняются (перемещением) только те файлы, которые инсталлятор заменяет. При удалении, эти же файлы восстанавливаются (тоже перемещением).
#include "SHFileOperation.iss"
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs; BeforeInstall: CreateBackup
[ Code]
function MoveFile(const srcFile, destFile: PChar):Integer;
external 'MoveFileA@kernel32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
MoveDir(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup\'));
end;
end;
procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
basePath:= ExpandConstant('{app}');
srcFile:= ExpandConstant(CurrentFileName);
shortPath:= srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile:= ExpandConstant('{app}\Backup') + shortPath;
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
Сделайте, пожалуйста такой же код, но для реестра, чтобы перед установкой создавался бекап, а при удалении восстанавливался. И чтобы бекап создавался в той ветке реестра в которой инсталлятор изменяет значение. Важным в коде должно быть, то что я выделил жирным... если это возможно, конечно.
ROMKA-1977
02-05-2014, 18:45
Подскажите пож. как в Inno Setup переименовать папку Мои документы в Documents (My Documents)?
sergey3695
02-05-2014, 20:39
ROMKA-1977, хм..
procedure InitializeWizard();
begin
RenameFile(ExpandConstant('{userdocs}'), ExpandConstant('{%userprofile}\My Documents'));
end;
вроде вот,но что-то только имя объекта меняется.
ROMKA-1977
02-05-2014, 20:52
вроде вот,но что-то только имя объекта меняется. »
Не то!
habib2302
03-05-2014, 10:41
как добавить прогресс бар показывающий установку допустим adobe flash player
diman_21Ru
03-05-2014, 11:43
Как можно добавить кнопку по переходу с En в Ru версию установщика, и как её можно двигать , вот скрин примера
habib2302
03-05-2014, 11:51
diman_21Ru, http://forum.oszone.net/post-2343792-515.html
http://forum.oszone.net/post-2246421.html#post2246421
http://forum.oszone.net/post-2261326.html#post2261326
diman_21Ru
03-05-2014, 12:28
habib2302, а как кнопку сделать больше размером,нашел где подвинуть,растянуть но не нашел размер увеличить.
И ещё можно ли как то иконку поставить под эту надпись
но не нашел размер увеличить »Врёшь. Нужно не находить, а уже понимать.
Я же писал (http://forum.oszone.net/post-2274075-1751.html).
Замени:
SetBounds(10,WizardForm.CancelButton.Top,30,WizardForm.CancelButton.Height)
на
SetBounds(10,300,80,23)
// Слева | Сверху | Ширина | Высота
// SetBounds(10, 300, 80, 23)
diman_21Ru
03-05-2014, 12:55
Nordek, спасибо большое а может есть ещё функция картинки на эту кнопку ?
diman_21Ru, В первом сообщении (http://forum.oszone.net/post-2321469-1.html): "Сборник скриптов в формате .chm от Krinkels;" скачай - там есть примеры "Текстурирование кнопок", "Текстурирование кнопок через botva2.dll".
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC