Здравствуйте! Решил перепаковать для себя VMware Workstation 11.1.2
Вот скрипт
[Setup]
AppName=VMware Workstation
AppVersion=11.1.2
AppPublisher=(сборка)
VersionInfoVersion=11.1.2
CreateAppDir=no
OutputBaseFilename=Setup_VMware_11
SetupIconFile={app}\ws.ico
SolidCompression=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
Uninstallable=no
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: "{app}\*"; DestDir: "{tmp}\vmware"; Flags: ignoreversion recursesubdirs createallsubdirs
[Tasks]
Name: "rus"; Description: "{cm:SetupLangPack}"; GroupDescription: "{cm:OtherOptions}"; Flags: checkablealone; MinVersion: 0.0,5.0
Name: "trayicon"; Description: "{cm:DelTrayIcon}"; GroupDescription: "{cm:OtherOptions}"; Flags: checkablealone; MinVersion: 0.0,5.0
[Run]
Filename: "{tmp}\vmware\uninstall.exe"; Parameters: "/T ""{tmp}\vmware\install"" /v /s /S ""{tmp}\vmware"""
Filename: "TASKKILL"; Parameters: "/F /IM ""vmware-tray.exe"""; Flags: runhidden; MinVersion: 0.0,5.0; Tasks: trayicon
Filename: "{tmp}\vmware\VMware-ru-ru.exe"; Parameters: "/s"; MinVersion: 0.0,5.0; Tasks: rus
[Registry]
Root: "HKCU"; Subkey: "Software\VMware, Inc.\VMware Tray"; ValueType: dword; ValueName: "TrayBehavior"; ValueData: "$00000002"; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: trayicon
[CustomMessages]
russian.DelTrayIcon=Отключить отображение иконки в трее
russian.SetupLangPack=Установить русский языковой пакет
russian.OtherOptions=Дополнительные параметры:
[code]
///Удалить кнопки свернуть, развернуть из окна инсталлятора
const
GWL_STYLE = -16;
WS_MINIMIZEBOX = $20000;
WS_MAXIMIZEBOX = $10000;
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
procedure initializeWizard();
begin
SetWindowLong(WizardForm.handle, GWL_STYLE, GetWindowLong(WizardForm.handle, GWL_STYLE)and(not WS_MINIMIZEBOX)and(not WS_MAXIMIZEBOX));
end;
Но одно но... Программа только для 64-bit систем, как организовать перед запуском инсталятора проверку, если система 64-bit - то продолжается установка, если система 32-bit - появляется окно с сообщением о несоответствии системы и предложение прекратить установку.
