Nordek,
code
Код:
![Выделить весь код](images/misc/selectcode.png)
[Setup]
AppId={{B5C6D58E-3D57-4255-937B-36F6B94FFD7F}
AppName=TEST
AppVerName=TEST
OutputDir=userdocs:..\Desktop
CreateAppDir=no
Uninstallable=no
[*Code]
function VersionWindows (Major, Minor: Integer): Boolean; var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
Result:=(Version.Major=Major) and (Version.Minor=Minor);
end;// Этот код проверяет версию Windows
function WindowsAll (): Boolean;
begin
Result:=VersionWindows(6,1);// Далее код будет выполнятся, только если установлена система (6.1)
end;// Этот код задает значение версии Windows
function Check_x86 (): Boolean;
begin
if not WindowsAll then
Result:=False
else begin
if not IsWin64 then
if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_KB2533623_SP1~31bf3856ad364e35~amd64~~6.1.1.2') then
if MsgBox('Для полноценной работы TEST на Windows 7'#13' Будет установлено обновление << KB2533623 >>', mbInformation, MB_OK)=IDOK then
Result:=True
end
end;// Этот код проверяет наличие обновления << KB2533623 >> на 32-ух битной Windows 7, и устанавливает это обновление при его отсутствии выводя сообщение
function Check_x64 (): Boolean;
begin
if not WindowsAll then
Result:=False
else begin
if IsWin64 then
if not RegKeyExists(HKLM64, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_KB2533623_SP1~31bf3856ad364e35~amd64~~6.1.1.2') then
if MsgBox('Для полноценной работы TEST на Windows 7'#13' Будет установлено обновление << KB2533623 >>', mbInformation, MB_OK)=IDOK then
Result:=True
end
end;// Этот код проверяет наличие обновления << KB2533623 >> на 64-х битной Windows 7, и устанавливает это обновление при его отсутствии выводя сообщение
function UpdateCentre (): Boolean; var
UpdateCentreDWord: Cardinal;
begin
if RegQueryDWordValue(HKLM, 'SYSTEM\CurrentControlSet\services\wuauserv', 'Start', UpdateCentreDWord) then
if UpdateCentreDWord=4 then
MsgBox('Центр Обновления Windows 7 Отключен:'#13' <<<для продолжения установки>>>'#13'Включите Центр Обновления Windows 7:'#13' <<и повторите установку еще раз>>', mbCriticalError, MB_OK)
else begin
Result:=True
end
end;// Этот код проверяет включен ли Центр Обновления на Windows 7 выводя сообщение
<event('InitializeSetup')>
function InitializeSetup2 (): Boolean;
begin
if WindowsAll then
Result:=UpdateCentre
else begin
Result:=True;
end
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result:=(PageID=wpSelectComponents);
end;// Этот код прячет страницу компонентов
[Components]
Name: File_x86; Description: KB2533623 for x86; Flags: exclusive restart; Check: Check_x86
Name: File_x64; Description: KB2533623 for x64; Flags: exclusive restart; Check: Check_x64
[Files]
Source: C:\Windows6.1-KB2533623-x86.msu; DestDir: {tmp}; Flags: deleteafterinstall;
Source: C:\Windows6.1-KB2533623-x64.msu; DestDir: {tmp}; Flags: deleteafterinstall;
[Run]
Filename: wusa.exe; Parameters: {tmp}\Windows6.1-KB2533623-x86.msu /quiet /norestart; StatusMsg:УСТАНОВКА ОБНОВЛЕНИЯ <<< KB2533623-x86 >>>; Components: File_x86; BeforeInstall: "Sleep(3000)"
Filename: wusa.exe; Parameters: {tmp}\Windows6.1-KB2533623-x64.msu /quiet /norestart; StatusMsg:УСТАНОВКА ОБНОВЛЕНИЯ <<< KB2533623-x64 >>>; Components: File_x64; BeforeInstall: "Sleep(3000)"
вот сочинил пьеску, это четверть от всего кода, на моем ФХ-се инсталятор летает, уже сутки колдую, и все время хочется больше... разговаривать его научить))) непонятно тока как организовать установку при установленом уже на ПК обновлении KB2533623, и выключеном Центре Обновления Windows, чтобы не прекращалась установка MsgBox-ом (Центр Обновления Windows 7 Отключен <<<для продолжения установки>>>)...бла...бла...бла... но то такое надо поспать и в бой потому как я уже просто схожу с ума. идей как говорится полно тока ришения подавай))))
как думаешь реально не прибегая к сторонниму софту на Инно сделать такой инсталлер?