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

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

Аватара для AlexM22204

Ветеран


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

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


Здравствуйте! Решил перепаковать для себя 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 - появляется окно с сообщением о несоответствии системы и предложение прекратить установку.

-------
Теория - это когда всё известно, но ничего не работает. Практика - это когда всё работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает... и никто не знает почему! (А.Эйнштейн)


Отправлено: 20:57, 08-07-2015 | #766