Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Как в зависимости от ОС показывать\скрывать элемент? В данном случаи чекбокс:
Скрытый текст
Код: Выделить весь код
[Setup]
appname=app
appversion=1.0
DefaultDirName={pf}\app

[code]
#define A = (Defined UNICODE) ? "W" : "A"
const
    VER_PLATFORM_WIN32_NT = 2;
type
    _OSVERSIONINFOEX = record
        dwOSVersionInfoSize: DWORD;
        dwMajorVersion: DWORD;
        dwMinorVersion: DWORD;
        dwPlatformId: DWORD;
        wServicePackMajor: WORD;
       end;

var
Taskbar: TCheckBox;

function GetVersionEx( var lpVersionInformation: _OSVERSIONINFOEX ): BOOL; external 'GetVersionEx{#A}@kernel32.dll stdcall';

function IsWindowsXp( ): Boolean;
var
    osviEx: _OSVERSIONINFOEX;
begin
    osviEx.dwOSVersionInfoSize := SizeOf( osviEx );

    if ( not GetVersionEx( osviEx ) ) then
      Exit;

    Result := ( ( osviEx.dwPlatformId = VER_PLATFORM_WIN32_NT ) and
                ( osviEx.dwMajorVersion = 5 ) and
                ( osviEx.dwMinorVersion = 1 ) and
                ( osviEx.wServicePackMajor = 3 ) );
end;

procedure TaskbarCreate();
begin
    Taskbar := nil;

    if not IsWindowsXp then
      begin
          Taskbar := TCheckBox.Create(nil);
          with Taskbar do
          begin
              Parent := WizardForm.WelcomePage;
              SetBounds(ScaleX(185), ScaleY(251), ScaleX(104), ScaleY(15));
              Caption := 'Раздача';
              
          end;
      end;
end;

procedure InitializeWizard();
begin
  TaskbarCreate;
end;


Задача: не показывать чекбокс если оперативная система XP.

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 07-04-2015 в 18:04.


Отправлено: 16:59, 07-04-2015 | #441