Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
habib2302
13-11-2015, 12:48
Как организовать подхват настроек через раздел Files с проверкой и без копирования в инсаллятор?
Dodakaedr, Как правильно зарегестрировать программу. Прописывать в секции [Registry] все записи найденные в реестре или только те строки что относятся к ключу. Или можно как-то прописать в скрипте reg файл.
Dodakaedr
13-11-2015, 22:21
ZVSRus, если программа не делает прочих проверок, то достаточно записи ключа: экспортируете из реестра ключ и через конвертер, который в шапке темы есть, конвертируете в формат inno, потом копируете строки в свой скрипт в секцию [Registry].
habib2302, если правильно помню, то как-то так:
[Files]
Source: {src}\FILE.reg; Flags: external
В любом случаи все это написано в справке в секции Files. Проверку можно сделать через check функцию, вроде тебе же и писал пример, либо через флаг, в справке найдешь.
Как организовать подхват настроек через раздел Files с проверкой и без копирования в инсаллятор? »
[Files]
Source: {src}\Settings.ini; DestDir: {userappdata}\MyProg; Flags: external skipifsourcedoesntexist
external - Внешний. Это значит что файлы будут браться с внешнего источника. В Source, присутствие константы {src} обязательно.
skipifsourcedoesntexist - Пропустить, если источник отсутствует. Т.е пропускает файл или каталог, если таковые отсутствуют.
Или можно как-то прописать в скрипте reg файл. »
[Run]
Filename: regedit.exe; Parameters: "/S ""{src}\MyRegistryFile.reg"""
Вопрос ко-всем знающим форум-чанам. Как правильно экспортировать ключ реестра. Какими программами лучше всего пользоваться для снятия снимков реестра. Как это делается. Не могу сделать ACDSee 5.0 PowerPack зарегестрированной, не могу корректно экспортировать из реестра данные. Опишите как все это делается на своих конкретных примерах.
Dodakaedr
17-11-2015, 13:08
ZVSRus, Любая программа по работе с реестром. Но можно и стандартным способом: кнопка "Пуск" > "Выполнить" вводите regedit > жмете "Enter", перед вами появится стандартный обозреватель реестра.http://i67.fastpic.ru/big/2015/1117/89/cbde3d02274e738c09a1149d575bb089.jpg
не могу корректно экспортировать »
а как оно экспортируется?
Dodakaedr, Экспортирую как на вашем рисунке. В regedit в строке поиск ввожу название программы, выдает список в около 1000 строк, все экспортирую в reg файл. Далее делаю в секции [Run]
Filename: regedit.exe; Parameters: "/S ""{src}\MyRegistryFile.reg""" в итоге выдает ошибки при запуске программы. Или ACDSee 5.0 такая хитрозадая или что-то делаю неправильно с реестром. За 2 дня всю голову сломал.
Так программа вносит данные в реестр
Dodakaedr
17-11-2015, 14:36
ZVSRus, чтобы вам помочь, надо знакомится с работой программы, на что сейчас нету времени.
Dodakaedr, Как правильно сделать чтобы ярлыки реально закреплялись на панели задач и в меню пуск
habib2302
17-11-2015, 21:29
Помогите решить проблему
http://savepic.ru/8064127.png (http://savepic.ru/8063103.png)
зарегестрированной »
[HKEY_LOCAL_MACHINE\SOFTWARE\ACD Systems\ACDSee Pro\50\InTouch2]
"LicenseKey"="XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX"
"Trial"=dword:00000000
"KeyCount"=dword:00000001
Вместо "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX" - Ваш регистрационный ключ.
[HKEY_LOCAL_MACHINE\SOFTWARE\ACD Systems\ACDSee Pro\50\LClient]
"md"=hex:***********
Вместо звёздочек конечное содержимое.
Не показывать Quick Start Guide:
[HKEY_CURRENT_USER\Software\ACD Systems\ACDSee Pro\50]
"ShowStartupWizard"=dword:00000000
Помогите решить проблему »
habib2302, Не ленитесь сюда приводить текстовый вид: Содержимое [Icons] в месте ошибки.
[Icons]
Name: {group}\{cm:UninstallProgram,Alcohol 120%25}; Filename: {uninstallexe}
МИШАНЧИК
19-11-2015, 14:39
Dodakaedr, подскажите пожалуйста, а как сделать:
1. чтоб разрядность отображалась и в SetupWindowTitle
2. убрать слово моя программа setup в описании инсталятора создаваемого инно, или заменить его на программа и т.п.?
Dodakaedr
19-11-2015, 18:20
1.Все хорошо, только теперь еще Welcx... прописывается в SetupWindowTitle »
удалите строку WizardForm.Caption := WizardForm.WelcomeLabel1.Caption; »
2. [Setup]
VersionInfoDescription=бла-бла
МИШАНЧИК
20-11-2015, 08:50
WizardForm.Caption := WizardForm.WelcomeLabel1.Caption; »
тогда полностью копируется строка WelcomeLabel1.Caption, а можно как-то задать туда другую надпись?
Какой Flags нужно подставить чтобы эти две папки устанавливались в данных директориях, но их не было видно,
а чтобы появлялись они только после первого запуска программы. Или нужно сделать что-то другое.
Source: C:\Installer\Roaming\ACD Systems\ImageDB\*; DestDir: {userappdata}\ACD Systems\ImageDB; Flags: ignoreversion recursesubdirs createallsubdirs; Check: RusLang and InstallerCheck
Source: C:\Installer\CommonAppData\ACD Systems\*; DestDir: {commonappdata}\ACD Systems; Flags: ignoreversion recursesubdirs createallsubdirs; Check: RusLang and InstallerCheck
Dodakaedr
20-11-2015, 21:45
а можно как-то задать туда другую надпись? »
А что вам мешает добавить её?[setup]
appname=App
appversion=1.1
UninstallDisplayName={code:GetUnName}
DefaultDirName={sd}\Apps
[CustomMessages]
Welcx32=Установка {#SetupSetting("AppName")} x32
Welcx64=Установка {#SetupSetting("AppName")} x64
UnName32=Удалить {#SetupSetting("AppName")} x32
UnName64=Удалить {#SetupSetting("AppName")} x64
Title32={#SetupSetting("AppName")} x32
Title64={#SetupSetting("AppName")} x64
[Code]
function GetUnName(uname: string): string;
begin
if IsWin64 then uname := CustomMessage('UnName64') else uname := CustomMessage('UnName32');
Result := uname;
end;
procedure InitializeWizard();
begin
if IsWin64 then
begin
WizardForm.WelcomeLabel1.Caption := CustomMessage('welcx64');
WizardForm.Caption := CustomMessage('Title64');
end
else
begin
WizardForm.WelcomeLabel1.Caption := CustomMessage('welcx32');
WizardForm.Caption := CustomMessage('Title32');
end;
end;
Какой Flags нужно подставить »
никакой
чтобы появлялись они только после первого запуска программы »
при отсутствии программа сама создаст их. Если там что-то необходимо для работы программы, например, какие-то настройки, лицензии, то их можно и до запуска программы устанавливать.
Dodakaedr, Есть программа (Ваша) Windows Player 3.0.0.0 RePack Portable by Dodakaedr вместо страницы финиша появляется окно. if MsgBox Как сделать как на картинке.
МИШАНЧИК
21-11-2015, 16:12
Dodakaedr, подскажите пожалуйста. Пытался заменить окно "о прграмме" этим скриптом:
[Files]
Source: compiler:CallbackCtrl.dll; Flags: dontcopy
[Code]
type
TWFProc = function(h:hWnd;Msg,wParam,lParam:Longint):Longint;
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall';
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function WrapWFProc(Callback: TWFProc; ParamCount: Integer): Longword; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall';
var
OldProc:Longint;
procedure AboutSetupClick;
begin
//здесь обрабатываем нажатие на пункт меню "О программе ..."
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
function WFWndProc(h:HWND;Msg,wParam,lParam:Longint):Longint;
begin
if (Msg=$112) and (wParam=9999) then begin
Result:=0;
AboutSetupClick;
end else begin
if Msg=$2 then SetWindowLong(WizardForm.Handle,-4,OldProc);
Result:=CallWindowProc(OldProc,h,Msg,wParam,lParam);
end;
end;
procedure InitializeWizard;
begin
OldProc:=SetWindowLong(WizardForm.Handle,-4,WrapWFProc(@WFWndProc,4));
end;
и на windows 7 х86 при отказе от дальнейшей установки(скрипт скомпилирован в 7х64) и закрытии инсталятора, выдает ошибку:
http://s018.radikal.ru/i510/1511/a0/5a9ef7b04699t.jpg (http://radikal.ru/fp/965e534c4f0f494ea15bbb5b3cf157e8)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.