[архив] Inno Setup .:[все вопросы]:.

Ответить
 • Просмотры: 6
Аватара пользователя
Alfiks

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Alfiks »

Помогите плиз с кодом. Нужно сделать некоторые вещи, но не знаю как.

1)Как заставить инсталяшку не оставлять след в установке-удалении программ

2)Встал вопрос с правами. При обновлении файла сбрасываются права на файл. Как их можно сохранить?

3) Ну и самое интересное. Нужно перед инсталляцией (обновлением) сделать бэкап файлов с сохранением прав на эти файлы.





Код:

Код: Выделить всё

[Setup]
AppName=Обновление для программы заказа продукции фирмы ЗАО"Арнебия"
AppVerName=Обновление для программы заказа продукции фирмы ЗАО"Арнебия" ver. 0.1
AppPublisher=Arnebia Inc
AppPublisherURL=http://www.arnebia.ru/
AppSupportURL=http://www.arnebia.ru/
AppUpdatesURL=http://www.arnebia.ru/
DefaultDirName={reg:HKLM\SOFTWARE\Arnebia,AppPath|{pf}\Arnebia\ArnebiaProduct}
DisableDirPage=yes
DefaultGroupName=Arnebia
OutputDir=C:\test progr
OutputBaseFilename=setup
SetupIconFile=C:\test progr\ArnebiaProduct\ArnebiaDoc.ico
Compression=lzma
SolidCompression=yes
[Dirs]
Name: {app}\img
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Icons]
Name: {group}\; Filename: {app}\ArnebiaDoc.ico; IconFilename: {app}\ArnebiaDoc.ico; Flags: runminimized
[Files]
Source: ..\..\..\test progr\ArnebiaProduct\img\img_installer\AP_Setup.jpg; DestDir: {app}\img\img_installer
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\ArnebiaDoc.ico; DestDir: {app}
Source: ..\..\..\test progr\ArnebiaProduct\client.xml; DestDir: {app}
Source: ..\..\..\test progr\ArnebiaProduct\data.mdb; DestDir: {app}
[Code_]
procedure MyAfterInstall();
begin
  MsgBox('Just installed ArnebiaProduct.exe as ' + CurrentFileName + '.', mbInformation, MB_OK);
end;
var
UpDate:string;
function GetInstallPath( AppID: String ): String;
var
Path: String;
    begin
    Path:= '';
    RegQueryStringValue(HKLM, 'SOFTWARE\Arnebia', 'AppPath', Path);
    Result:= Path;
    end;
function InitializeSetup(): Boolean;
var
Version,s:string;
    begin
    Result:=True;
    UpDate:='2.0.0.7';
// Проверка через реестр
    if not RegValueExists(HKLM, 'SOFTWARE\Arnebia', 'AppPath') then
        begin
        s:='Программа не установлена.' #13#13 'Дальнейшая работа невозможна.';
        MsgBox(s, mbError, mb_Ok);
        Result:=False;
        end else
// Проверка присутствия файла в папке с установленной программой
          begin
          If (FileSearch('ArnebiaProduct.exe', ExpandConstant('{code:GetInstallPath}'))='') then
              begin
              s:='Извините, в директории '+ExpandConstant('{code:GetInstallPath}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь.';
              MsgBox(s, mbError, mb_Ok);
              Result:= False;
              end else
 //                 MsgBox('Версия:'+ Version, mberror, mb_Ok)
 begin
                    if Version < UpDate then //сравниваем
                        begin
                        RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Arnebia', 'AppVers', Version);
                        Result:=true;
                        end else begin
                        MsgBox('Обновление на данную версию не устанавливается.', mberror, mb_Ok);
                        Result:=false;
                        end;
                    end;
                 end;
          end;
procedure DeinitializeSetup();
 begin
     RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Arnebia', 'AppVers', UpDate);
 end;

Заранее очень благодарен за помощь. А то на работе трясут... сроки, а я застрял на этих моментах.pi
Аватара пользователя
Elka80

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Elka80 »

Mihail88,

Спасибо!



У вас


Цитата Mihail88:



[Icons]

Name: {group}\Удалить Игру; Filename: {uninstallexe}; WorkingDir: {app}

Name: {group}\Запустить Игру; Filename: {app}\Игра.exe; WorkingDir: {app}

Name: {group}\Readme; Filename: {app}\ReadmeFile.txt; WorkingDir: {app}
[архив] Inno Setup .:[все вопросы]:.






У меня (создал)

[Icons]

Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}

Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon



Почему у меня так? не как у вас!
Аватара пользователя
Elka80

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Elka80 »

Elka80



Могу только предполагать, может {#MyAppName} прописан как запускаемый файл, ищите в коде где он упоменается и на какой файл ровняется.
Аватара пользователя
Elka80

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Elka80 »

Цитата Mihail88:



Добавил TRichEditViewer на первую страницу, как подгрузить ему файл RTF?
[архив] Inno Setup .:[все вопросы]:.




можно так
читать дальше »






Код:

Код: Выделить всё

; Inno Setup Compiler 5.3.3(u)
[Setup]
AppName=My Program
AppVerName=My Program
OutputDir=userdocs:.
OutputBaseFilename=My Program
DefaultDirName={pf}\My Program
[Files]
Source: "Info.rtf"; DestDir: {tmp}; Flags: dontcopy noencryption;
код:
procedure InitializeWizard();
var
  MyInfo: TRichEditViewer;
  RTF: AnsiString;
begin
  ExtractTemporaryFile('Info.rtf');
  LoadStringFromFile(ExpandConstant('{tmp}\Info.rtf'), RTF);
  MyInfo := TRichEditViewer.Create(WizardForm);
  MyInfo.Parent:= WizardForm.WelcomePage;
  MyInfo.SetBounds(ScaleX(175), ScaleY(10), ScaleX(312), ScaleY(293));
  MyInfo.ScrollBars := ssVertical;
  MyInfo.ReadOnly := True;
  MyInfo.RTFText := RTF;
end;
Аватара пользователя
Elka80

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Elka80 »

Еще вопрос у меня все файлы Удалить игру+ReadME+Настройки игры в (D:\games\pes2009)



Name: {group}\setup.exe; Filename: {uninstallexe}; WorkingDir: {app} Удалить Игру

Name: {group}\pes2009.exe; Filename: {app}\Игра.exe; WorkingDir: {app} Запустить Игру

Name: {group}\ReadMe.txt; Filename: {app}\ReadmeFile.txt; WorkingDir: {app} » Readme



Я правильно написал?
Аватара пользователя
Mihail88

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Mihail88 »

Цитата FlatX007:



Если язык инсталятора - то залазим в папку с установленной программой

C:\Program Files\Inno Setup 5\Languages\.. находим файл Russian.isl переименовываем в Default.isl и копируем его в C:\Program Files\Inno Setup 5\
[архив] Inno Setup .:[все вопросы]:.




Пардон, а зачем такой изврат, если можно поступить более красивым способом - прописать это в самом скрипте:



Код:

Код: Выделить всё

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

Имя языка в 'Name', можно задать любое.
Аватара пользователя
Mihail88

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Mihail88 »

Elka80

правильно будет скорее так:



Name: "{group}\Удалить PES2009"; Filename: "{uninstallexe}"; Comment: "Удалить игру PES2009";

Name: "{group}\PES2009"; Filename: "{app}\pes2009.exe"; WorkingDir: "{app}"; Comment: "Запуск игры PES2009";

Name: "{group}\ReadMe"; Filename: "{app}\ReadmeFile.txt"; WorkingDir: "{app}"; Comment: "Прочитать файл ReadMe";
Аватара пользователя
Elka80

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Elka80 »

Еще вопрос у меня все файлы Удалить игру+ReadME+Настройки игры в (D:\games\pes2009)



Name: {group}\setup.exe; Filename: {uninstallexe}; WorkingDir: {app} Удалить Игру

Name: {group}\pes2009.exe; Filename: {app}\Игра.exe; WorkingDir: {app} Запустить Игру

Name: {group}\ReadMe.txt; Filename: {app}\ReadmeFile.txt; WorkingDir: {app} » Readme



Я правильно написал?
Аватара пользователя
boss911

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение boss911 »

serg aka lain,

Спасибо еше раз, получилось, толко readmi не показывать (сам редми показывает, толко файл не показывает)




Цитата FlatX007:



или меню программы ?
[архив] Inno Setup .:[все вопросы]:.




Как?
Аватара пользователя
serg aka lain

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение serg aka lain »

Цитата boss911:



Пардон, а зачем такой изврат, если можно поступить более красивым способом - прописать это в самом скрипте:
[архив] Inno Setup .:[все вопросы]:.




Это у вас красивый способ, а у меня кординальный ... зачем каждый раз прописывать в скрипте это если я русский человек и инсталер мне нужен всегда на русском.




Цитата Elka80:



или меню программы ? »

Как?
[архив] Inno Setup .:[все вопросы]:.




Вот этого я незнаю, всегда сам пользовался английской оболочкой ... а что там сопсно непонятного ?




Цитата Elka80:



толко readmi не показывать (сам редми показывает, толко файл не показывает)
[архив] Inno Setup .:[все вопросы]:.




Это как так , 3 раза прочитал непонял ... Изображение
Ответить

Вернуться в «Автоматическая установка приложений»