|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3] |
|
Скрипты Inno Setup. Помощь и советы [часть 3]
|
Ветеран Сообщения: 1133 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 |
|
------- Отправлено: 00:28, 04-11-2010 |
![]() Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Как сделать прозрачным фон текста???
|
------- Отправлено: 18:13, 29-06-2011 | #2101 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 189
|
Профиль | Отправить PM | Цитировать No4noylis, читай форумы, гугли в конце концов, короче:
TNewStaticText не имеет свойство прозрачности , а статик текст во всём инсталляторе используется (по дефолту) , но есть альтернатива procedure initializewizard(); var label: TLabel; begin Label := TLabel.Create(WizardForm); with Label do begin AutoSize:=False; //авторазмер SetBounds(ScaleX(100), ScaleY(219), ScaleX(200), ScaleY(17)); //размеры OnClick:= @LabelClick; //что делает текст при нажатии, если не нужно удалить Cursor:= CrHand; //курсор при наведении, если не нужно удалить Transparent:=True; //а вот и главное, прозрачность Font.Name:= 'Comic Sans MS' //шрифт если не нужно удалить Font.Size:= 8;//размер текста если не нужно удалить Font.Color:=$00FFFF; //цвет текста если не нужно удалить Font.Style:=[fsItalic]; //стиль текста italic это курсив fsbold это жирный и тд. если не нужно удалить Caption := 'наш текст'; Parent := WizardForm; //где находится end; end; |
------- Отправлено: 18:45, 29-06-2011 | #2102 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Rikill:
скорее всего ты WizardForm.PasswordEdit.Text:= делаешь в initializeseup, а надо в initializewizard |
|
------- Отправлено: 20:31, 29-06-2011 | #2103 |
Старожил Сообщения: 189
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., брал прямиком из архива со справкой, странно
![]() |
------- Отправлено: 21:27, 29-06-2011 | #2105 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Rikill, покаж скрипт
|
------- Отправлено: 21:36, 29-06-2011 | #2106 |
Старожил Сообщения: 189
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:40, 29-06-2011 | #2107 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Rikill,
лишняя CheckPassword потому что If Setup finds the CheckPassword event function in the Pascal script, it automatically displays the Password page and calls CheckPassword to check passwords. Return True to accept the password and False to reject it. ;2. В процедуре InitializeSetup, заполняется массив символов, которые могут использоваться для пароля (а могут и не использоваться). ;3. В процедуре InitializeWizard, поле ввода пароля делается скрытым, что немного прорежает ряды школьников, пытающихся вскрыть ваш инсталлятор. ;4. Как заполняется поле ввода пароля, можно увидеть в процедуре CurPageChanged. Это, наверно, самый простой вариант, но и он не дает увидеть пароль в коде. Еще лучше, если использовать функции и циклы. ;5. Еще одна фишка, это использование в пароле функции с участием GetDateTimeString. При каждом клике на кнопку <Далее>, в переменную сохраняется время. В пароле используется разница между сохраненными и текущими секундами. Так как при нормальной инсталляции, это происходит автоматически и очень быстро, разница практически всегда равна нулю. А вот если проходить в пошаговом режиме (под отладчиком), разница будет не нулевая, и введенный пароль будет не верен. Откровенно говоря, это слабая защита (так как человека, знакомого с такими методами взлома, это не остановит), но все-таки притормозить может. ;6. И, наконец, сразу после проверки пароля, в функции CheckPassword страница PasswordPage ликвидируется. ;Все. Не стоит думать, что этот код нельзя вскрыть. Это только затруднит вскрытие для неподготовленного человека. Но в 99% случаев, этого достаточно. [Setup] AppName=My Program AppVerName=My Program version 1.5 DefaultDirName={pf}\My Program DisableProgramGroupPage=yes Encryption=yes Password=Inn0 [*Code] var str: string; MyArray: array of Char; function InitializeSetup(): Boolean; begin MyArray:= ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','!','@','#','$','%','^','&','*','(',')']; Result:= True; end; //function CheckPassword(Password: String): Boolean; //begin // WizardForm.PasswordEdit.Text:= 'Вот и нет пароля'; // WizardForm.PasswordPage.Free; //Result:= True; //end; procedure InitializeWizard(); begin // WizardForm.PasswordEdit.Visible:= False; WizardForm.PasswordEdit.Text:= ''; end; function NextButtonClick(CurPageID: Integer): Boolean; begin str:= GetDateTimeString('ss', #0, #0); Result:= True; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpPassword then begin WizardForm.PasswordEdit.Text:= MyArray[8]+MyArray[39]+MyArray[39] + IntToStr(StrToInt(str) - StrToInt(GetDateTimeString('ss', #0, #0))); SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0) SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0) // WizardForm.NextButton.OnClick(WizardForm.NextButton); end; end; |
------- Отправлено: 22:40, 29-06-2011 | #2108 |
Старожил Сообщения: 189
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., спасибо, надо значит обновить архив в шапке
Сейчас решил вскрыть свой инсталлятор unpacker'ом (Inno Setup Unpacker, расширенная версия) раньше открывался а теперь, когда я перешёл на restools версию инсталлятор не открывается, так-то! ![]() немного не понимаю как русифицировать рестуловскую версию... |
------- Последний раз редактировалось Rikill, 29-06-2011 в 23:01. Отправлено: 22:49, 29-06-2011 | #2109 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата Rikill:
жми полезное сообщение под постом, который помог |
|
------- Отправлено: 22:52, 29-06-2011 | #2110 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [addon] Inno Setup | CrOsP | Наборы обновлений для Windows XP/2003/Windows 7 | 33 | 11-05-2011 16:03 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Inno Setup 5.3.6 | OSZone Software | Новости программного обеспечения | 0 | 15-11-2009 17:30 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|