PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]


Страниц : 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

Mancoffee
29-04-2014, 01:12
Как обойти установку дополнительных компонентов (Inno Script Studio и другие) в "тихой" установке, если нет интернета?

ПС. Знаю, что есть параметр /COMPONENTS , но нигде не нашёл, какие у него подпараметры, то есть как называются.

saurn
29-04-2014, 07:12
Mancoffee,
Параметры командной строки инсталлятора (http://jrsoftware.org/ishelp/topic_setupcmdline.htm)

Mancoffee
29-04-2014, 09:06
saurn, да вроде как написал, что про параметр /COMPONENTS знаю и про другие тоже. Есть так к примеру help, то есть /COMPONENTS="help"
А как поставить туда Inno Script Studio? Где это описано?

saurn
29-04-2014, 11:45
да вроде как написал, что про параметр /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, а как кнопку сделать больше размером,нашел где подвинуть,растянуть но не нашел размер увеличить.
И ещё можно ли как то иконку поставить под эту надпись

Nordek
03-05-2014, 12:50
но не нашел размер увеличить »Врёшь. Нужно не находить, а уже понимать.
Я же писал (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, спасибо большое а может есть ещё функция картинки на эту кнопку ?

Nordek
03-05-2014, 13:04
diman_21Ru, В первом сообщении (http://forum.oszone.net/post-2321469-1.html): "Сборник скриптов в формате .chm от Krinkels;" скачай - там есть примеры "Текстурирование кнопок", "Текстурирование кнопок через botva2.dll".




© OSzone.net 2001-2012