|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Пользователь Сообщения: 76
|
Профиль | Отправить PM | Цитировать us_ov, Примерно так
Скрытый текст
var cbDrive: TComboBox; DrvLetters: array of string; FreeSpaceLabel: TLabel; 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:='CD-ROM'; DRIVE_RAMDISK: Result:='Ram диск'; else Result:='Неизвестный'; end; end; procedure cbDriveOnClick(Sender: TObject); begin WizardForm.DirEdit.Text:=DrvLetters[cbDrive.ItemIndex]+'!Po'; end; procedure FillCombo(); var n: integer; drivesletters: string; lenletters: integer; drive: string; disktype, posnull: integer; sd: string; 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_CDROM ) ) 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 GetFreeSpaceCaption(Sender: TObject); var Path: string; FreeMB, TotalMB: cardinal; begin Path:=ExtractFileDrive(WizardForm.DirEdit.Text); GetSpaceOnDisk(Path, True, FreeMB, TotalMB); if FreeMB > 1024 then FreeSpaceLabel.Caption:='Свободно на диске: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else FreeSpaceLabel.Caption:='Свободно на диске: ' + IntToStr(FreeMB) + ' MB' end; procedure InitializeWizard(); begin cbDrive:=TComboBox.Create(WizardForm.SelectDirPage); FreeSpaceLabel:=TLabel.Create(WizardForm); with cbDrive do begin Parent:=WizardForm.DirEdit.Parent; Left := ScaleX(0); // Left:=WizardForm.DirEdit.Left+41; // 41 Top:=WizardForm.DirEdit.Top+WizardForm.DirEdit.Height*2-15; //2-15 // Width:=WizardForm.DirEdit.Width; Width := ScaleX(400); //размер Style:=csDropDownList; end with FreeSpaceLabel do begin Parent:=WizardForm.SelectDirPage; Left:=ScaleX(0); Top:=Scaley(195); Width:=ScaleX(209); //209 Height:=ScaleY(13); end; WizardForm.DirBrowseButton.Visible:=false; // False WizardForm.DirEdit.Enabled:=true; WizardForm.DirEdit.OnChange:=@GetFreeSpaceCaption; WizardForm.DirEdit.Text:=WizardForm.DirEdit.Text+#0; FillCombo; cbDrive.OnClick:=@cbDriveOnClick; with WizardForm.DirEdit do begin Left := ScaleX(0); Top := ScaleY(80); //выше ниже Height := ScaleY(23); Width:=ScaleX(400); //209 размер end; with WizardForm.DirBrowseButton do// пришлось сдвинуть обзор begin Left := ScaleX(0); Top := ScaleY(150); Height := ScaleY(30); end; end; |
Отправлено: 16:40, 08-08-2015 | #871 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать TryRooM, СПАСИБО!
|
Отправлено: 17:11, 08-08-2015 | #872 |
Забанен Сообщения: 96
|
|
Отправлено: 19:12, 08-08-2015 | #873 |
Пользователь Сообщения: 76
|
Профиль | Отправить PM | Цитировать vadjliss,
[Setup] ;AllowNoIcons=yes не создавать папку в меню пуск Вы закомментировали? Посмотрите, у вас в коде нет этого. var No_Icons_CheckBox: TNewCheckBox; |
Последний раз редактировалось TryRooM, 08-08-2015 в 21:45. Отправлено: 20:58, 08-08-2015 | #874 |
Забанен Сообщения: 96
|
TryRooM
[Setup] ;AllowNoIcons=yes не создавать папку в меню пуск не отключает |
Отправлено: 21:32, 08-08-2015 | #875 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:52, 08-08-2015 | #876 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Здравствуйте.
Решил сделать слайдшоу, нашел пример с использованием isgsg.dll: А можно ли как нибудь прописать показ изображений с помощью цикла - чтобы Inno сам формировал себе список для слайдшоу из изображений, которые найдёт в папке {tmp} ? |
Отправлено: 07:29, 09-08-2015 | #877 |
Забанен Сообщения: 96
|
|
Отправлено: 14:57, 11-08-2015 | #878 |
Пользователь Сообщения: 131
|
Профиль | Сайт | Отправить PM | Цитировать Цитата vadjliss:
Скрипт
#define gameid "{11110000-2222-3333-4444-555500000000}" #define appname "My Program" #define appversion "1.0" [Setup] AppId={{#gameid} AppName={#appname} AppVerName={#appname} AppVersion={#appversion} DefaultDirName={pf}\{#appname} OutputDir=. OutputBaseFilename=setup Compression=lzma2/ultra64 SolidCompression=true PrivilegesRequired=poweruser [Languages] Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"; [CustomMessages] rus.DeleteInfo1=Перед установкой необходимо удалить предыдущую версию приложения. Удалить? rus.DeleteInfo2=Удаление предыдущей версии приложения завершилось неудачей. [Code_] function UninstallMyApp(): Boolean; var Buff: String; i: Integer; begin Result:= not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#gameid}_is1', 'UninstallString', Buff); if not Result then Result:= not FileExists(RemoveQuotes(Buff)); if not Result then if MsgBox(ExpandConstant('{cm:DeleteInfo1}'), mbError, MB_YESNO) = IDYES then try Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i); finally Result:= not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#gameid}_is1', 'UninstallString', Buff ); if not Result then MsgBox(ExpandConstant('{cm:DeleteInfo2}'), mbError, MB_OK); end; end; function InitializeSetup(): Boolean; begin Result:= UninstallMyApp(); end; |
|
------- Отправлено: 16:54, 12-08-2015 | #879 |
Забанен Сообщения: 96
|
Цитата Sotonisto:
не отображаются надписи ред установкой необходимо удалить предыдущую версию приложения. Удалить? Удаление предыдущей версии приложения завершилось неудачей. |
|
Отправлено: 19:58, 12-08-2015 | #880 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|