![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Забанен Сообщения: 96
|
парни подскажите скрипт что бы в 1 инстоляторе было и 32и 64 битная сис.
и чтоб автоматически выбирала систему очень очень надо |
Отправлено: 14:15, 13-09-2015 | #941 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать vadjliss,
[Setup] ArchitecturesInstallIn64BitMode=x64 [...] ; х64 Check: "Is64BitInstallMode"; ; х86 Check: "not Is64BitInstallMode"; |
Отправлено: 14:30, 13-09-2015 | #942 |
Забанен Сообщения: 96
|
а на примере можешь показать куда и как ставить
я так понял вот так скрипт
#define MyAppName "My Program" #define MyAppVersion "1.5" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "MyProg.exe" [Setup] AppId={{D19EE6F3-07CC-4C29-A911-0F50BC5F659F} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=setup Compression=lzma SolidCompression=yes ArchitecturesInstallIn64BitMode=x64 [Languages] Name: "default"; MessagesFile: "compiler:Default.isl" Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent ; х64 Check: "Is64BitInstallMode"; ; х86 Check: "not Is64BitInstallMode"; |
Последний раз редактировалось vadjliss, 13-09-2015 в 16:31. Отправлено: 14:55, 13-09-2015 | #943 |
Пользователь Сообщения: 128
|
Профиль | Отправить PM | Цитировать TryRooM,
Цитата TryRooM:
пример Скрытый текст
[code]; Скрипт создан через Мастер Inno Setup Script. ; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP! #define MyAppName "Моя программа" #define MyAppVersion "1.5" #define MyAppPublisher "Моя компания, Inc." #define MyAppURL "http://www.сайт.com/" #define MyAppExeName "MyProg.exe" [Setup] ; Примечание: Значение AppId идентифицирует это приложение. ; Не используйте одно и тоже значение в разных установках. ; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.) AppId={{B5BB5779-8526-4769-95BB-7F54ACCBC64A} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: "default"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion ; Примечание: Не используйте "Flags: ignoreversion" для системных файлов [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent var cbDrive: TComboBox; DrvLetters: array of string; function GetDriveType(lpDisk: string): integer; external 'GetDriveTypeA@kernel32.dll stdcall'; function GetLogicalDriveStrings(nLenDrives: LongInt; lpDrives: string): integer; external 'GetLogicalDriveStringsA@kernel32.dll stdcall'; const DRIVE_UNKNOWN = 0; DRIVE_NO_ROOT_DIR = 1; DRIVE_REMOVABLE = 2; DRIVE_FIXED = 3; DRIVE_REMOTE = 4; DRIVE_CDROM = 5; DRIVE_RAMDISK = 6; function DriveTypeString(dtype: integer): string; begin case dtype of DRIVE_NO_ROOT_DIR: Result:=''; DRIVE_REMOVABLE: Result:=''; DRIVE_FIXED: Result:=''; DRIVE_REMOTE: Result:=''; DRIVE_CDROM: Result:=''; DRIVE_RAMDISK: Result:=''; end; end; procedure cbDriveOnClick(Sender: TObject); begin WizardForm.DirEdit.Text := DrvLetters[cbDrive.ItemIndex] + '{#MyAppName}'; end; procedure FillCombo(); var drivesletters, drive, sd: string; n, lenletters, disktype, posnull: integer; begin sd := UpperCase(ExpandConstant('{sd}')); drivesletters := StringOfChar(' ', 64); lenletters := GetLogicalDriveStrings(63, drivesletters); SetLength(drivesletters, lenletters); Drive := ''; n := 0; while ((Length(Drivesletters) > 0)) do begin posnull := Pos(#0, Drivesletters); if posnull > 0 then begin Drive := UpperCase(Copy(Drivesletters, 1, posnull-1)); disktype := GetDriveType(Drive); if ( not ( disktype = DRIVE_REMOVABLE ) ) then if ( not ( disktype = DRIVE_REMOTE ) ) then if ( not ( disktype = DRIVE_CDROM ) ) then if ( not ( disktype = DRIVE_RAMDISK ) ) then begin cbDrive.Items.Add(Drive + DriveTypeString(disktype)) SetArrayLength(DrvLetters, N+1); DrvLetters[n] := Drive; if (Copy(Drive, 1, 2)=sd) then cbDrive.ItemIndex := n; n := n+1; end Drivesletters := Copy(Drivesletters, posnull+1, Length(Drivesletters)); end; end; cbDriveOnClick(cbDrive); end; procedure InitializeWizard(); begin cbDrive := TComboBox.Create(WizardForm.SelectDirPage); with cbDrive do begin Parent := WizardForm.DirEdit.Parent; Left := 0; Top := WizardForm.DirEdit.Top+WizardForm.DirEdit.Height*2-15; Width := 40; Style := csDropDownList; end WizardForm.DirEdit.Text := WizardForm.DirEdit.Text+#0; FillCombo; cbDrive.OnClick := @cbDriveOnClick; end; |
|
Отправлено: 17:48, 13-09-2015 | #944 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата audiofeel:
Скрытый текст
[Code] #define A = (Defined UNICODE) ? "W" : "A" const DRIVE_NO_ROOT_DIR = 1; DRIVE_FIXED = 3; var cbDrive: TComboBox; function GetLogicalDrives: DWORD; external 'GetLogicalDrives@kernel32.dll stdcall'; function GetDriveType(lpRootPathName: string): UINT; external 'GetDriveType{#A}@kernel32.dll stdcall'; procedure cbDriveOnClick(Sender: TObject); var DirValue: string; begin DirValue := WizardDirValue; StringChangeEx(DirValue, AddBackslash(ExtractFileDrive(DirValue)), cbDrive.Items[cbDrive.ItemIndex], True); WizardForm.DirEdit.Text := DirValue; end; procedure DirEditOnChange(Sender: TObject); var i: Integer; begin for i := 0 to cbDrive.Items.Count - 1 do begin if CompareText(cbDrive.Items[i], AddBackslash(ExtractFileDrive(WizardDirValue))) = 0 then begin cbDrive.ItemIndex := i; Break; end; end; end; procedure FillCombo; var dwDrives: DWORD; uDriveType: UINT; szDriveLetter: string; i: Integer; begin dwDrives := GetLogicalDrives; for i := 2 to 25 do if dwDrives and (1 shl i) <> 0 then begin szDriveLetter := Chr(Ord('A') + i) + ':\'; uDriveType := GetDriveType(szDriveLetter); case uDriveType of DRIVE_FIXED: begin cbDrive.Items.Add(szDriveLetter); if CompareText(cbDrive.Items[cbDrive.Items.Count - 1], AddBackslash(ExtractFileDrive(WizardDirValue))) = 0 then cbDrive.ItemIndex := cbDrive.Items.Count - 1; end; DRIVE_NO_ROOT_DIR: Continue; end; end; end; procedure InitializeWizard; begin WizardForm.DirEdit.OnChange := @DirEditOnChange; cbDrive := TComboBox.Create(WizardForm.SelectDirPage); with cbDrive do begin Parent := WizardForm.DirEdit.Parent; Top := WizardForm.DirEdit.Top + WizardForm.DirEdit.Height + ScaleY(5); Width := 40; Style := csDropDownList; OnClick := @cbDriveOnClick; FillCombo; end; end; |
|
Отправлено: 13:57, 14-09-2015 | #945 |
Пользователь Сообщения: 128
|
Профиль | Отправить PM | Цитировать El Sanchez,
просто отлично, все работает, только как теперь быть с лейблом "требуется место...." , он у меня менял цвет при нехватке Скрытый текст
procedure DirEditOnChange(Sender: TObject); var FreeMB, TotalMB: cardinal; begin GetSpaceOnDisk(ExtractFileDrive(WizardForm.DirEdit.Text), True, FreeMB, TotalMB); NeedSizeLbl.Caption:= ExpandConstant('{cm:NeedSize1} ' + MbOrTb({#NeedSize}) + ' {cm:NeedSize2}') if (FreeMB<{#NeedSize}) then NeedSizeLbl.Font.Color:= clRed else NeedSizeLbl.Font.Color:= clWhite; end; |
Отправлено: 14:25, 14-09-2015 | #946 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать El Sanchez,
Тебе видимо тут спокойно не живётся. Аудиозоофил, До оригинала тебе как от Москвы до Пекина пешком. На данный момент ты добился лишь того что мод VCL Styles Inno выпилен и новых версий не будет для паблика. |
Отправлено: 14:35, 14-09-2015 | #947 |
Забанен Сообщения: 96
|
подскажите как сделать или хоть примерный скрипт 32-64 бит
имеется 2 папки одна 32 другая 64 бит программы как их реализовать в один инстал. и автоматически что бы выбирала ось |
Отправлено: 19:11, 14-09-2015 | #948 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата vadjliss:
|
|
Отправлено: 21:29, 14-09-2015 | #949 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать Доброе время суток. Подскажите как правильно сделать распаковку vcomp140.dll в sys и syswow64. Все перепробЫвал либо 1 файл не распаковывается либо оба файла в syswow64
Хочу чтобы vcomp140.dll распаковывался в System32, а vcomp140_1.dll в syswow64 |
------- Отправлено: 10:38, 20-09-2015 | #950 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|