Можно ли как-то данные с tedit(например серийный ключ) добавить в реестр через секцию [code]?
» Inno Setup (создание инсталяционных пакетов)
Доброго времени суток. Возможно вопрос уже обсуждался...
Мне нужно вставить фоновое изображение JPG на задний фон инсталлятора. Таким образом, чтоб он растягивался на весь экран, однако чтоб подгонялся под экран. то есть если фон 4:3, а монитор 16:9, то чтоб в стороны не растягивался фон, а был 4:3, а по бокам были черные полосы. Ну и другие варианты. Мне нужен не скрипт слайдшоу, а именно одно изображение, которое будет показываться весь процесс установки. Заранее спасибо.
Мне нужно вставить фоновое изображение JPG на задний фон инсталлятора. Таким образом, чтоб он растягивался на весь экран, однако чтоб подгонялся под экран. то есть если фон 4:3, а монитор 16:9, то чтоб в стороны не растягивался фон, а был 4:3, а по бокам были черные полосы. Ну и другие варианты. Мне нужен не скрипт слайдшоу, а именно одно изображение, которое будет показываться весь процесс установки. Заранее спасибо.
darkqft
[more]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[code]
var
TestEdit: TEdit;
TestButton: TButton;
procedure TestClick(Sender: TObject);
begin
RegWriteStringValue(HKLM, 'Software\MyApp', 'TestString', TestEdit.Text);
end;
procedure InitializeWizard();
begin
with WizardForm do begin
TestEdit := TEdit.Create(WizardForm);
with TestEdit do begin
Parent := WelcomePage;
AutoSelect := False;
Text := 'Что я должен занести в реестр?';
SetBounds(WizardBitmapImage.Width + ScaleX(5), Bevel.Top - ScaleY(30), ScaleX(250), Height);
end;
TestButton := TButton.Create(WizardForm);
with TestButton do begin
Parent := WelcomePage;
Caption := 'В реестр';
OnClick := @TestClick;
SetBounds(TestEdit.Left + TestEdit.Width + ScaleX(5), TestEdit.Top - ScaleY(2), ScaleX(70), ScaleY(23));
end;
end;
end;
[more]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[code]
var
TestEdit: TEdit;
TestButton: TButton;
procedure TestClick(Sender: TObject);
begin
RegWriteStringValue(HKLM, 'Software\MyApp', 'TestString', TestEdit.Text);
end;
procedure InitializeWizard();
begin
with WizardForm do begin
TestEdit := TEdit.Create(WizardForm);
with TestEdit do begin
Parent := WelcomePage;
AutoSelect := False;
Text := 'Что я должен занести в реестр?';
SetBounds(WizardBitmapImage.Width + ScaleX(5), Bevel.Top - ScaleY(30), ScaleX(250), Height);
end;
TestButton := TButton.Create(WizardForm);
with TestButton do begin
Parent := WelcomePage;
Caption := 'В реестр';
OnClick := @TestClick;
SetBounds(TestEdit.Left + TestEdit.Width + ScaleX(5), TestEdit.Top - ScaleY(2), ScaleX(70), ScaleY(23));
end;
end;
end;
Mailchik
благодарю
благодарю
Здравствуйте. Можете кинуть пример скрипта, в котором реализована функция остановки распаковки архивов нажатием соответствующей кнопки? Спасибо
Ребят, кто знает, как занести Данные в реестр через секцию [Code] на этапе InitializeSetup?
ultimo, если вы про ISDone, то есть функция SuspendProc, которая приостанавливает процесс распаковки.. Обратная ей функция ResumeProc.
LordSP, 2 поста выше.
LordSP, 2 поста выше.
MailchikХорошо, спасибо, а как занести в реестр Двоичные значения, подскажи?
Добавлено:
Mailchik При чем у меня Двоичное значение такое огромное, что даже не стоит его тут писать.
Добавлено:
Mailchik При чем у меня Двоичное значение такое огромное, что даже не стоит его тут писать.
LordSP, RegWriteBinaryValue.
Mailchik А само значение как записывать?
фух... наконец-то добрался до последней части обсуждения... очевидно, искать ответ в предыдущих нет никакой возможности, ибо их несуразно много
вопрос: как в скрипте корректно назначить программу для просмотра PDF документов, то есть, установить ассоциацию PDF? нам это необходимо сделать, у нас свой софт, документацию с которым надо смотреть своим ридером, это требование заказчика
пытались выполнять консольные команды assoc и ftype, но не получается, и вообще они в консоли не работают, как описано в документации M$ - ранее на машину был установлен Foxit Reader, и чтобы мы не делали, при открытии PDF вызывается он, и даже assoc .pdf= не помогает - затирается только связь в одной ветке реестра, но остаются классы, созданные Foxit
и такая же беда с Adobe PDF - не можем никак установить свою программу, вместо него
может есть другой известный способ гарантированно задать ассоциации своей программе в скрипте InnoSetup, вместо установленных ранее?
способ прописать грубо руками в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf свою программу мне известен - но хотелось более правильно, чтобы не лазить по реестру
вопрос: как в скрипте корректно назначить программу для просмотра PDF документов, то есть, установить ассоциацию PDF? нам это необходимо сделать, у нас свой софт, документацию с которым надо смотреть своим ридером, это требование заказчика
пытались выполнять консольные команды assoc и ftype, но не получается, и вообще они в консоли не работают, как описано в документации M$ - ранее на машину был установлен Foxit Reader, и чтобы мы не делали, при открытии PDF вызывается он, и даже assoc .pdf= не помогает - затирается только связь в одной ветке реестра, но остаются классы, созданные Foxit
и такая же беда с Adobe PDF - не можем никак установить свою программу, вместо него
может есть другой известный способ гарантированно задать ассоциации своей программе в скрипте InnoSetup, вместо установленных ранее?
способ прописать грубо руками в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf свою программу мне известен - но хотелось более правильно, чтобы не лазить по реестру
Всем привет, мне нужно реализовать функцию резервного копирования перед установкой новых файлов и папок, и чтоб при удалении восстанавливал те же папки и файлы
Пробовал такой код
MoveDir(ExpandConstant('{app}\Backup\'), ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup\'));
примерно, пишет неизвестный индефикатор, заранее спс
http://rghost.ru/43228489
Пробовал такой код
MoveDir(ExpandConstant('{app}\Backup\'), ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup\'));
примерно, пишет неизвестный индефикатор, заранее спс
http://rghost.ru/43228489
вроде нашел какой-то вариант установки ассоциаций в FAQ самого InnoSetup, но нет уверенности, что он будет работать, похоже на то, что мы делали, только другими средствами
BUU Держи, Тыц
LordSP
Что то код не работает, установил где файлы были одинаковые, только размер отличался, нету резерва
Что то код не работает, установил где файлы были одинаковые, только размер отличался, нету резерва
не получается по FAQ - сетап прописывает все ссылки, как описано, но PDF открывается всё равно Adobe Reader
как в скрипте убрать назначение Adobe на открытие PDF? иначе придется писать, чтобы удаляли Adobe Reader с компьютера
Добавлено:
работает после прописывания своей программы ещё в две ветки реестра
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf"; ValueType: string; ValueName: "ProgId"; ValueData: """myPDF.exe"" ""%1"""
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\OpenWithProgids"; ValueType: binary; ValueName: "{app}\myPDF.exe"; ValueData: ""
но это, блин, HKCU, значит для другого пользователя работать не будет
как в скрипте убрать назначение Adobe на открытие PDF? иначе придется писать, чтобы удаляли Adobe Reader с компьютера
Добавлено:
работает после прописывания своей программы ещё в две ветки реестра
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf"; ValueType: string; ValueName: "ProgId"; ValueData: """myPDF.exe"" ""%1"""
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\OpenWithProgids"; ValueType: binary; ValueName: "{app}\myPDF.exe"; ValueData: ""
но это, блин, HKCU, значит для другого пользователя работать не будет
Gourmet
http://www.jrsoftware.org/isfaq.php#assoc Создание ассоциаций файлов
ChangesAssociations=Yes в секции [Setup]. Когда установлено в yes, инсталлятор сообщит Проводнику обновить свою информацию об ассоциациях файла в конце установки. Деинсталлятор сделает то же самое в конце удаления.
Я делал так:
[more=смотреть]; Скрипт "Infix PDF Editor"
#define MyAppName "Infix PDF Editor"
#define MyAppVersion "5.22"
#define MyAppURL "http://www.iceni.com/"
#define MyAppExeName "Infix.exe"
[Setup]
AppId={{962D1E88-FEF1-48B8-B880-2DC8DCD889B6}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\Iceni\Infix5
DefaultGroupName=Infix PDF Editor 5
ChangesAssociations=yes
;LicenseFile=embedded\License.rtf
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
OutputBaseFilename=InfixSetupRUS_{#MyAppVersion}
SetupIconFile={app}\pdf.ico
Compression=lzma
SolidCompression=yes
ShowLanguageDialog=auto
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
Name: "fileassoc"; Description: "{cm:AssocFileExtension,Infix PDF Editor,.pdf}"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked
Name: "autoupdates"; Description: "Periodically check for software updates"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked; Languages: english
Name: "autoupdates"; Description: "Переодически проверять обновления программы"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked; Languages: russian
Name: "infixpdfprinter"; Description: "Install Infix PDF Printer"; GroupDescription: "{cm:AdditionalSet}"; Languages: english
Name: "infixpdfprinter"; Description: "Установить Infix PDF Printer"; GroupDescription: "{cm:AdditionalSet}"; Languages: russian
Name: "helpfile"; Description: "{cm:UserManual}"; GroupDescription: "{cm:AdditionalSet}";
[Dirs]
Name: "{localappdata}\Aspell\personal"; Flags: uninsneveruninstall
[Files]
Source: "{app}\Infix.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; {localappdata} и {userappdata}
Source: "{localappdata}\Aspell\personal\en.prepl"; DestDir: "{localappdata}\Aspell\personal"
Source: "{localappdata}\Aspell\personal\en.pws"; DestDir: "{localappdata}\Aspell\personal"
Source: "{localappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{localappdata}\Iceni\Infix\5"; Flags: ignoreversion
Source: "{userappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{userappdata}\Iceni\Infix\5"; Flags: ignoreversion
; Infix PDF Printer
Source: "{tmp}\infixPDFPrinter.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion; Tasks: infixpdfprinter
; Программные компоненты
Source: "{commonappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: ignoreversion
Source: "{commonappdata}\Iceni\Infix\5\pis"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\pff"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\pip"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\product.xml"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\ukhyphen.tex"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\ushyphen.tex"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Aspell\*"; DestDir: "{commonappdata}\Aspell"; Flags: recursesubdirs createallsubdirs
; Лицензия
Source: "{commonappdata}\Iceni\Infix\5\Infix.dat"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: skipifsourcedoesntexist ignoreversion uninsremovereadonly
Source: "{commonappdata}\Iceni\Infix\5\cocop.dat"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: skipifsourcedoesntexist ignoreversion uninsremovereadonly
; Полная справка
Source: "{commonappdata}\Iceni\Infix\5\manual.pdf"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: ignoreversion skipifsourcedoesntexist uninsremovereadonly; Tasks: helpfile
[Icons]
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\On-line Support"; Filename: "http://www.iceni.com/support.htm"; Languages: english
Name: "{group}\On-line Поддержка"; Filename: "http://www.iceni.com/ru/support.htm"; Languages: russian
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}";
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[CustomMessages]
english.AdditionalSet=Additional Setting:
english.UserManual=Install User Manual
russian.AdditionalSet=Дополнительные настройки:
russian.UserManual=Установить руководство пользователя (английское)
[Registry]
Root: "HKCR"; Subkey: ".pdf"; ValueType: String; ValueData: "Infix.Document"; Flags: uninsdeletevalue; Tasks: fileassoc; BeforeInstall: BackupData('pdf')
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix"; ValueType: String; ValueData: "Edit with &Infix PDF Editor"; Flags: uninsdeletekey; Languages: english
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix"; ValueType: String; ValueData: "Изменить в &Infix PDF Editor"; Flags: uninsdeletekey; Languages: russian
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix\command"; ValueType: String; ValueData: """{app}\Infix.exe"" ""%1"""; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document"; ValueType: String; ValueData: "Infix PDF Editor Document"; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document\DefaultIcon"; ValueType: String; ValueData: "{app}\pdf.ico"; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document\shell\edit"; ValueType: String; ValueData: "Edit with &Infix PDF Editor"; Flags: uninsdeletekey; Languages: english
Root: "HKCR"; Subkey: "Infix.Document\shell\edit"; ValueType: String; ValueData: "Изменить в &Infix PDF Editor"; Flags: uninsdeletekey; Languages: russian
Root: "HKCR"; Subkey: "Infix.Document\shell\edit\command"; ValueType: String; ValueData: """{app}\Infix.exe"" ""%1"""; Flags: uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\Infix PDF"; ValueType: string; ValueName: "AppFileName"; ValueData: "{app}\Infix.exe"; Flags: uninsdeletevalue
Root: "HKLM"; Subkey: "SOFTWARE\Infix PDF"; ValueType: string; ValueName: "DefaultPrinter"; ValueData: "2"; Flags: uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\Iceni Technology Limited\Infix"; ValueType: string; ValueName: "CheckForUpdates"; ValueData: "true"; Flags: uninsdeletevalue; Tasks: autoUpdates
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndTitle"; ValueData: "Infix PDF Printer"; Flags: uninsdeletevalue; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionInst"; ValueData: "Дождитесь завершения установки драйвера PDF-принтера"; Flags: uninsdeletekey; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionUnInst"; ValueData: "Удаление Infix PDF Printer"; Flags: uninsdeletekey; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndTitle"; ValueData: "Infix PDF Printer"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionInst"; ValueData: "Please wait while the PDF printer driver is installed"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionUnInst"; ValueData: "Uninstalling Infix PDF printer"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK"; ValueType: String; ValueName: "DisableInstallDrvMsg"; ValueData: "1"; Flags: uninsdeletekey; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "PlaySound"; ValueData: "0"; Flags: uninsdeletekey; Tasks: infixpdfprinter
[Run]
Filename: "{tmp}\infixPDFPrinter.exe"; Parameters: "/VERYSILENT /PASSWORD=guy@iceni.com"; WorkingDir: "{app}"; Description: "Infix PDF Printer"; StatusMsg: "Installing Infix PDF Printer"; Tasks: InfixPDFPrinter; Languages: english
Filename: "{tmp}\infixPDFPrinter.exe"; Parameters: "/VERYSILENT /PASSWORD=guy@iceni.com"; WorkingDir: "{app}"; Description: "Infix PDF Printer"; StatusMsg: "Установка Infix PDF Printer"; Tasks: InfixPDFPrinter; Languages: russian
Filename: "{app}\{#MyAppExeName}"; Parameters: "{app}\welcome.pdf"; WorkingDir: "{app}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; StatusMsg: "Opening welcome document"; Flags: nowait postinstall skipifsilent
[UninstallRun]
Filename: "{win}\Infix PDF\unins000.exe"; Parameters: "/VERYSILENT"; WorkingDir: "{win}\Infix PDF"; Flags: skipifdoesntexist; StatusMsg: "Uninstalling Infix PDF Printer"; Languages: english
Filename: "{win}\Infix PDF\unins000.exe"; Parameters: "/VERYSILENT"; WorkingDir: "{win}\Infix PDF"; Flags: skipifdoesntexist; StatusMsg: "Удаление Infix PDF Printer"; Languages: russian
[Code ]
const
WM_CLOSE = 16;
function ProcessRunning(): Boolean;
var winHwnd: longint;
retVal : boolean;
strProg: string;
begin
Result := true;
try
strProg := 'Infix Pro';
winHwnd := FindWindowByWindowName(strProg);
Log('winHwnd: ' + inttostr(winHwnd));
if winHwnd <> 0 then
retVal:=postmessage(winHwnd,WM_CLOSE,0,0);
if retVal then
Result := True
except
end;
end;
function InitializeSetup : Boolean;
begin
Result := ProcessRunning();
end;
function InitializeUninstall: Boolean;
begin
Result := ProcessRunning();
end;
function GetUninstallString(): String;
var
sUnInstPath: String;
sUnInstallString: String;
begin
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
sUnInstallString := '';
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
Result := sUnInstallString;
end;
function IsUpgrade(): Boolean;
begin
Result := (GetUninstallString() <> '');
end;
function UnInstallOldVersion(): Integer;
var
sUnInstallString: String;
iResultCode: Integer;
begin
// Return Values:
// 1 - uninstall string is empty
// 2 - error executing the UnInstallString
// 3 - successfully executed the UnInstallString
// default return value
Result := 0;
// get the uninstall string of the old app
sUnInstallString := GetUninstallString();
if sUnInstallString <> '' then begin
sUnInstallString := RemoveQuotes(sUnInstallString);
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
Result := 3
else
Result := 2;
end else
Result := 1;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep=ssInstall) then
begin
if (IsUpgrade()) then
begin
UnInstallOldVersion();
end;
end;
end;
procedure BackupData(FileExt: String);
var
OldValueData: string;
begin
if RegKeyExists(HKCR, '.' + FileExt) then
begin
RegQueryStringValue(HKCR, '.' + FileExt, '', OldValueData);
RegWriteStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData);
end;
end;
procedure RestoreData(FileExt: String);
var
OldValueData: string;
begin
if RegKeyExists(HKCR, '.' + FileExt + '(backup)') then
begin
RegQueryStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData);
RegWriteStringValue(HKCR, '.' + FileExt, '', OldValueData);
RegDeleteKeyIncludingSubkeys(HKCR, '.' + FileExt + '(backup)');
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
RestoreData('pdf');
end;
end;[/more]Пример репака для Infix PDF Editor с сохранением и восстановлением ассоциаций
http://www.jrsoftware.org/isfaq.php#assoc Создание ассоциаций файлов
ChangesAssociations=Yes в секции [Setup]. Когда установлено в yes, инсталлятор сообщит Проводнику обновить свою информацию об ассоциациях файла в конце установки. Деинсталлятор сделает то же самое в конце удаления.
Я делал так:
[more=смотреть]; Скрипт "Infix PDF Editor"
#define MyAppName "Infix PDF Editor"
#define MyAppVersion "5.22"
#define MyAppURL "http://www.iceni.com/"
#define MyAppExeName "Infix.exe"
[Setup]
AppId={{962D1E88-FEF1-48B8-B880-2DC8DCD889B6}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\Iceni\Infix5
DefaultGroupName=Infix PDF Editor 5
ChangesAssociations=yes
;LicenseFile=embedded\License.rtf
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
OutputBaseFilename=InfixSetupRUS_{#MyAppVersion}
SetupIconFile={app}\pdf.ico
Compression=lzma
SolidCompression=yes
ShowLanguageDialog=auto
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
Name: "fileassoc"; Description: "{cm:AssocFileExtension,Infix PDF Editor,.pdf}"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked
Name: "autoupdates"; Description: "Periodically check for software updates"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked; Languages: english
Name: "autoupdates"; Description: "Переодически проверять обновления программы"; GroupDescription: "{cm:AdditionalSet}"; Flags: unchecked; Languages: russian
Name: "infixpdfprinter"; Description: "Install Infix PDF Printer"; GroupDescription: "{cm:AdditionalSet}"; Languages: english
Name: "infixpdfprinter"; Description: "Установить Infix PDF Printer"; GroupDescription: "{cm:AdditionalSet}"; Languages: russian
Name: "helpfile"; Description: "{cm:UserManual}"; GroupDescription: "{cm:AdditionalSet}";
[Dirs]
Name: "{localappdata}\Aspell\personal"; Flags: uninsneveruninstall
[Files]
Source: "{app}\Infix.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; {localappdata} и {userappdata}
Source: "{localappdata}\Aspell\personal\en.prepl"; DestDir: "{localappdata}\Aspell\personal"
Source: "{localappdata}\Aspell\personal\en.pws"; DestDir: "{localappdata}\Aspell\personal"
Source: "{localappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{localappdata}\Iceni\Infix\5"; Flags: ignoreversion
Source: "{userappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{userappdata}\Iceni\Infix\5"; Flags: ignoreversion
; Infix PDF Printer
Source: "{tmp}\infixPDFPrinter.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion; Tasks: infixpdfprinter
; Программные компоненты
Source: "{commonappdata}\Iceni\Infix\5\Infix.cfg"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: ignoreversion
Source: "{commonappdata}\Iceni\Infix\5\pis"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\pff"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\pip"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\product.xml"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\ukhyphen.tex"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Iceni\Infix\5\ushyphen.tex"; DestDir: "{commonappdata}\Iceni\Infix\5"
Source: "{commonappdata}\Aspell\*"; DestDir: "{commonappdata}\Aspell"; Flags: recursesubdirs createallsubdirs
; Лицензия
Source: "{commonappdata}\Iceni\Infix\5\Infix.dat"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: skipifsourcedoesntexist ignoreversion uninsremovereadonly
Source: "{commonappdata}\Iceni\Infix\5\cocop.dat"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: skipifsourcedoesntexist ignoreversion uninsremovereadonly
; Полная справка
Source: "{commonappdata}\Iceni\Infix\5\manual.pdf"; DestDir: "{commonappdata}\Iceni\Infix\5"; Flags: ignoreversion skipifsourcedoesntexist uninsremovereadonly; Tasks: helpfile
[Icons]
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\On-line Support"; Filename: "http://www.iceni.com/support.htm"; Languages: english
Name: "{group}\On-line Поддержка"; Filename: "http://www.iceni.com/ru/support.htm"; Languages: russian
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}";
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[CustomMessages]
english.AdditionalSet=Additional Setting:
english.UserManual=Install User Manual
russian.AdditionalSet=Дополнительные настройки:
russian.UserManual=Установить руководство пользователя (английское)
[Registry]
Root: "HKCR"; Subkey: ".pdf"; ValueType: String; ValueData: "Infix.Document"; Flags: uninsdeletevalue; Tasks: fileassoc; BeforeInstall: BackupData('pdf')
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix"; ValueType: String; ValueData: "Edit with &Infix PDF Editor"; Flags: uninsdeletekey; Languages: english
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix"; ValueType: String; ValueData: "Изменить в &Infix PDF Editor"; Flags: uninsdeletekey; Languages: russian
Root: "HKLM"; Subkey: "Software\Classes\AcroExch.Document.7\shell\EditWithInfix\command"; ValueType: String; ValueData: """{app}\Infix.exe"" ""%1"""; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document"; ValueType: String; ValueData: "Infix PDF Editor Document"; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document\DefaultIcon"; ValueType: String; ValueData: "{app}\pdf.ico"; Flags: uninsdeletekey
Root: "HKCR"; Subkey: "Infix.Document\shell\edit"; ValueType: String; ValueData: "Edit with &Infix PDF Editor"; Flags: uninsdeletekey; Languages: english
Root: "HKCR"; Subkey: "Infix.Document\shell\edit"; ValueType: String; ValueData: "Изменить в &Infix PDF Editor"; Flags: uninsdeletekey; Languages: russian
Root: "HKCR"; Subkey: "Infix.Document\shell\edit\command"; ValueType: String; ValueData: """{app}\Infix.exe"" ""%1"""; Flags: uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\Infix PDF"; ValueType: string; ValueName: "AppFileName"; ValueData: "{app}\Infix.exe"; Flags: uninsdeletevalue
Root: "HKLM"; Subkey: "SOFTWARE\Infix PDF"; ValueType: string; ValueName: "DefaultPrinter"; ValueData: "2"; Flags: uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\Iceni Technology Limited\Infix"; ValueType: string; ValueName: "CheckForUpdates"; ValueData: "true"; Flags: uninsdeletevalue; Tasks: autoUpdates
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndTitle"; ValueData: "Infix PDF Printer"; Flags: uninsdeletevalue; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionInst"; ValueData: "Дождитесь завершения установки драйвера PDF-принтера"; Flags: uninsdeletekey; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionUnInst"; ValueData: "Удаление Infix PDF Printer"; Flags: uninsdeletekey; Languages: russian; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndTitle"; ValueData: "Infix PDF Printer"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionInst"; ValueData: "Please wait while the PDF printer driver is installed"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "InstWndCaptionUnInst"; ValueData: "Uninstalling Infix PDF printer"; Flags: uninsdeletekey; Languages: english; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK"; ValueType: String; ValueName: "DisableInstallDrvMsg"; ValueData: "1"; Flags: uninsdeletekey; Tasks: infixpdfprinter
Root: "HKLM"; Subkey: "SOFTWARE\ActMask Virtual Printer SDK\iceni.com"; ValueType: String; ValueName: "PlaySound"; ValueData: "0"; Flags: uninsdeletekey; Tasks: infixpdfprinter
[Run]
Filename: "{tmp}\infixPDFPrinter.exe"; Parameters: "/VERYSILENT /PASSWORD=guy@iceni.com"; WorkingDir: "{app}"; Description: "Infix PDF Printer"; StatusMsg: "Installing Infix PDF Printer"; Tasks: InfixPDFPrinter; Languages: english
Filename: "{tmp}\infixPDFPrinter.exe"; Parameters: "/VERYSILENT /PASSWORD=guy@iceni.com"; WorkingDir: "{app}"; Description: "Infix PDF Printer"; StatusMsg: "Установка Infix PDF Printer"; Tasks: InfixPDFPrinter; Languages: russian
Filename: "{app}\{#MyAppExeName}"; Parameters: "{app}\welcome.pdf"; WorkingDir: "{app}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; StatusMsg: "Opening welcome document"; Flags: nowait postinstall skipifsilent
[UninstallRun]
Filename: "{win}\Infix PDF\unins000.exe"; Parameters: "/VERYSILENT"; WorkingDir: "{win}\Infix PDF"; Flags: skipifdoesntexist; StatusMsg: "Uninstalling Infix PDF Printer"; Languages: english
Filename: "{win}\Infix PDF\unins000.exe"; Parameters: "/VERYSILENT"; WorkingDir: "{win}\Infix PDF"; Flags: skipifdoesntexist; StatusMsg: "Удаление Infix PDF Printer"; Languages: russian
[Code ]
const
WM_CLOSE = 16;
function ProcessRunning(): Boolean;
var winHwnd: longint;
retVal : boolean;
strProg: string;
begin
Result := true;
try
strProg := 'Infix Pro';
winHwnd := FindWindowByWindowName(strProg);
Log('winHwnd: ' + inttostr(winHwnd));
if winHwnd <> 0 then
retVal:=postmessage(winHwnd,WM_CLOSE,0,0);
if retVal then
Result := True
except
end;
end;
function InitializeSetup : Boolean;
begin
Result := ProcessRunning();
end;
function InitializeUninstall: Boolean;
begin
Result := ProcessRunning();
end;
function GetUninstallString(): String;
var
sUnInstPath: String;
sUnInstallString: String;
begin
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
sUnInstallString := '';
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
Result := sUnInstallString;
end;
function IsUpgrade(): Boolean;
begin
Result := (GetUninstallString() <> '');
end;
function UnInstallOldVersion(): Integer;
var
sUnInstallString: String;
iResultCode: Integer;
begin
// Return Values:
// 1 - uninstall string is empty
// 2 - error executing the UnInstallString
// 3 - successfully executed the UnInstallString
// default return value
Result := 0;
// get the uninstall string of the old app
sUnInstallString := GetUninstallString();
if sUnInstallString <> '' then begin
sUnInstallString := RemoveQuotes(sUnInstallString);
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
Result := 3
else
Result := 2;
end else
Result := 1;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep=ssInstall) then
begin
if (IsUpgrade()) then
begin
UnInstallOldVersion();
end;
end;
end;
procedure BackupData(FileExt: String);
var
OldValueData: string;
begin
if RegKeyExists(HKCR, '.' + FileExt) then
begin
RegQueryStringValue(HKCR, '.' + FileExt, '', OldValueData);
RegWriteStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData);
end;
end;
procedure RestoreData(FileExt: String);
var
OldValueData: string;
begin
if RegKeyExists(HKCR, '.' + FileExt + '(backup)') then
begin
RegQueryStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData);
RegWriteStringValue(HKCR, '.' + FileExt, '', OldValueData);
RegDeleteKeyIncludingSubkeys(HKCR, '.' + FileExt + '(backup)');
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
RestoreData('pdf');
end;
end;[/more]Пример репака для Infix PDF Editor с сохранением и восстановлением ассоциаций
Не помогает, компилирует, но при установке резерв не делает
Robby
вот то, что понаписано в фирменном FAQ, и не работает, если на машине установлен Adobe Reader - работает, только если вписать назначения в дополнительные ключи, но они в HKCU
вот то, что понаписано в фирменном FAQ, и не работает, если на машине установлен Adobe Reader - работает, только если вписать назначения в дополнительные ключи, но они в HKCU
Всё разобрался с резервом
А мне кто поможет с моим вопросом...
marineharrison
Код:
procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width := ScaleX
WizardForm.WizardBitmapImage.Width := ScaleY
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
end;
Код:
procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width := ScaleX
WizardForm.WizardBitmapImage.Width := ScaleY
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
end;
LordSP
Я имел ввиду фон за инсталлятлором...Это точно сработает. Какую библиотеку использовать, чтоб фоновый рисунок был в JPG...
Я имел ввиду фон за инсталлятлором...Это точно сработает. Какую библиотеку использовать, чтоб фоновый рисунок был в JPG...
marineharrison
botva2.dll
botva2.dll
The answer is found.
пользуюсь скриптом ISFreeArcExtract v.4.1
подскажите, пожалуйста, как поставить распаковку на паузу?
пробывал SuspendUpdate := True, но это, я так понял, просто приостановка обновления информации, т.к. все останавливается, а потом появляется страница об окончании установки
подскажите, пожалуйста, как поставить распаковку на паузу?
пробывал SuspendUpdate := True, но это, я так понял, просто приостановка обновления информации, т.к. все останавливается, а потом появляется страница об окончании установки
Всем привет.
Подскажите, пожалуйста, каку брать WizardSmallImage.bmp , что-бы только стандартный цвет инсталлятора и текст отсался.
Подскажите, пожалуйста, каку брать WizardSmallImage.bmp , что-бы только стандартный цвет инсталлятора и текст отсался.
Dark_Delphin
Код:
procedure InitializeWizard();
begin
WizardForm.WizardSmallBitmapImage.Visible:=false;
end;
Код:
procedure InitializeWizard();
begin
WizardForm.WizardSmallBitmapImage.Visible:=false;
end;
ultimo
Это супер! Спасибо большое.
Это супер! Спасибо большое.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
Предыдущая тема: поиск
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.